From da128a67ef8fd6682a0798965469419a607ae9a1 Mon Sep 17 00:00:00 2001 From: Sigurd Meldgaard Date: Tue, 24 Mar 2026 08:25:35 +0000 Subject: [PATCH] Make it not an experiment --- app/lib/dartdoc/dartdoc_page.dart | 5 ++- app/lib/frontend/handlers/experimental.dart | 3 -- app/lib/shared/markdown.dart | 4 +-- .../dartdoc/dartdoc_image_proxy_test.dart | 31 ++-------------- .../shared/markdown_image_proxy_test.dart | 35 +++---------------- 5 files changed, 9 insertions(+), 69 deletions(-) diff --git a/app/lib/dartdoc/dartdoc_page.dart b/app/lib/dartdoc/dartdoc_page.dart index f09507d543..605a20bf9c 100644 --- a/app/lib/dartdoc/dartdoc_page.dart +++ b/app/lib/dartdoc/dartdoc_page.dart @@ -5,7 +5,7 @@ import 'package:_pub_shared/dartdoc/dartdoc_page.dart'; import 'package:path/path.dart' as p; import 'package:pub_dev/frontend/dom/dom.dart' as d; -import 'package:pub_dev/frontend/request_context.dart'; + import 'package:pub_dev/frontend/static_files.dart'; import 'package:pub_dev/service/image_proxy/backend.dart'; import 'package:pub_dev/shared/configuration.dart'; @@ -357,8 +357,7 @@ String _replaceImageMarkers(String html, String imageProxyNonce) { return html.replaceAllMapped(imageMarkerRegExp, (match) { final originalUrl = Uri.decodeComponent(match.group(1)!); var replacementUrl = originalUrl; - if (requestContext.experimentalFlags.isImageProxyEnabled && - activeConfiguration.imageProxyServiceBaseUrl != null) { + if (activeConfiguration.imageProxyServiceBaseUrl != null) { final uri = Uri.tryParse(originalUrl); if (uri != null) { replacementUrl = imageProxyBackend.imageProxyUrl(uri) ?? originalUrl; diff --git a/app/lib/frontend/handlers/experimental.dart b/app/lib/frontend/handlers/experimental.dart index 78128aef40..01c7617f97 100644 --- a/app/lib/frontend/handlers/experimental.dart +++ b/app/lib/frontend/handlers/experimental.dart @@ -10,7 +10,6 @@ typedef PublicFlag = ({String name, String description}); const _publicFlags = { (name: 'example', description: 'Short description'), - (name: 'image-proxy', description: 'Use the image proxy for images'), }; final _allFlags = { @@ -92,8 +91,6 @@ class ExperimentalFlags { late final isExposeLicenseDiffEnabled = isEnabled('expose-licence-diff'); - bool get isImageProxyEnabled => isEnabled('image-proxy'); - String encodedAsCookie() => _enabled.join(':'); @override diff --git a/app/lib/shared/markdown.dart b/app/lib/shared/markdown.dart index a5b34342aa..09cdd27848 100644 --- a/app/lib/shared/markdown.dart +++ b/app/lib/shared/markdown.dart @@ -7,7 +7,6 @@ import 'package:html/dom_parsing.dart' as html_parsing; import 'package:html/parser.dart' as html_parser; import 'package:logging/logging.dart'; import 'package:markdown/markdown.dart' as m; -import 'package:pub_dev/frontend/request_context.dart'; import 'package:pub_dev/frontend/static_files.dart'; import 'package:pub_dev/service/image_proxy/backend.dart'; import 'package:pub_dev/shared/changelog.dart'; @@ -127,8 +126,7 @@ String _postProcessHtml( var root = html_parser.parseFragment(rawHtml); _RelativeUrlRewriter(urlResolverFn, relativeFrom).visit(root); - if (requestContext.experimentalFlags.isImageProxyEnabled && - activeConfiguration.imageProxyServiceBaseUrl != null) { + if (activeConfiguration.imageProxyServiceBaseUrl != null) { _ImageProxyRewriter().visit(root); } diff --git a/app/test/dartdoc/dartdoc_image_proxy_test.dart b/app/test/dartdoc/dartdoc_image_proxy_test.dart index dff5ab6a5d..66d1419dba 100644 --- a/app/test/dartdoc/dartdoc_image_proxy_test.dart +++ b/app/test/dartdoc/dartdoc_image_proxy_test.dart @@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:pub_dev/dartdoc/dartdoc_page.dart'; -import 'package:pub_dev/frontend/handlers/experimental.dart'; import 'package:pub_dev/frontend/request_context.dart'; import 'package:pub_dev/service/image_proxy/backend.dart'; import 'package:pub_dev/shared/configuration.dart'; @@ -19,9 +18,7 @@ void main() { ); registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags({'image-proxy'})), - ); + registerRequestContext(RequestContext()); registerImageProxyBackend(_FakeImageProxyBackend()); final imageProxyNonce = '1234567890abcdef1234567890abcdef'; @@ -41,9 +38,7 @@ void main() { scopedTest('normal double curlies are preserved', () async { registerActiveConfiguration(Configuration.test()); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags.empty), - ); + registerRequestContext(RequestContext()); final sidebar = DartDocSidebar( content: '

Some text with {{marker}} and }} and {{.

', @@ -51,28 +46,6 @@ void main() { ); expect(sidebar.render(), contains('{{marker}} and }} and {{')); }); - - scopedTest('dartdoc images use original URL if proxy is disabled', () async { - final config = Configuration.test( - primarySiteUri: Uri.parse('https://pub.dev/'), - imageProxyServiceBaseUrl: 'https://proxy.pub.dev', - ); - - registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags.empty), - ); - registerImageProxyBackend(_FakeImageProxyBackend()); - - final imageProxyNonce = 'imageProxyNonce'; - final sidebar = DartDocSidebar( - content: - '', - imageProxyNonce: imageProxyNonce, - ); - final rendered = sidebar.render(); - expect(rendered, contains('src="https://example.com/image.png"')); - }); } class _FakeImageProxyBackend implements ImageProxyBackend { diff --git a/app/test/shared/markdown_image_proxy_test.dart b/app/test/shared/markdown_image_proxy_test.dart index 090ca2ab03..92383249f8 100644 --- a/app/test/shared/markdown_image_proxy_test.dart +++ b/app/test/shared/markdown_image_proxy_test.dart @@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:gcloud/service_scope.dart'; -import 'package:pub_dev/frontend/handlers/experimental.dart'; import 'package:pub_dev/frontend/request_context.dart'; import 'package:pub_dev/service/image_proxy/backend.dart'; import 'package:pub_dev/shared/configuration.dart'; @@ -19,9 +18,7 @@ void main() { await fork(() async { registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags({'image-proxy'})), - ); + registerRequestContext(RequestContext()); registerImageProxyBackend(_FakeImageProxyBackend()); final html = markdownToHtml('![text](https://example.com/image.png)'); @@ -42,9 +39,7 @@ void main() { await fork(() async { registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags({'image-proxy'})), - ); + registerRequestContext(RequestContext()); registerImageProxyBackend(_FakeImageProxyBackend()); for (final host in [ @@ -62,24 +57,6 @@ void main() { }); }); - test('images are NOT proxied when experiment is disabled', () async { - final config = Configuration.test( - primarySiteUri: Uri.parse('https://pub.dev/'), - imageProxyServiceBaseUrl: 'https://proxy.pub.dev', - ); - - await fork(() async { - registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags.empty), - ); - registerImageProxyBackend(_FakeImageProxyBackend()); - - final html = markdownToHtml('![text](https://example.com/image.png)'); - expect(html, contains('src="https://example.com/image.png"')); - }); - }); - test('image tag is removed if proxying fails', () async { final config = Configuration.test( primarySiteUri: Uri.parse('https://pub.dev/'), @@ -88,9 +65,7 @@ void main() { await fork(() async { registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags({'image-proxy'})), - ); + registerRequestContext(RequestContext()); registerImageProxyBackend(_NullImageProxyBackend()); final html = markdownToHtml('![text](https://example.com/image.png)'); @@ -107,9 +82,7 @@ void main() { await fork(() async { registerActiveConfiguration(config); - registerRequestContext( - RequestContext(experimentalFlags: ExperimentalFlags({'image-proxy'})), - ); + registerRequestContext(RequestContext()); registerImageProxyBackend(_FakeImageProxyBackend()); final html = markdownToHtml('![text](ftp://example.com/image.png)');