From 2b5dd8f8e52702d17c75d4d71344943ad800a68f Mon Sep 17 00:00:00 2001 From: Istvan Soos Date: Wed, 12 Feb 2025 11:46:38 +0100 Subject: [PATCH 1/2] Cleanup after enabling experiments. --- app/lib/frontend/handlers/experimental.dart | 10 -------- .../templates/views/pkg/score_tab.dart | 4 +--- .../templates/views/shared/search_banner.dart | 4 +--- .../templates/views/shared/site_header.dart | 23 ++++++------------- .../test/search_completition_test.dart | 4 ---- .../test/theme_switch_test.dart | 2 -- 6 files changed, 9 insertions(+), 38 deletions(-) diff --git a/app/lib/frontend/handlers/experimental.dart b/app/lib/frontend/handlers/experimental.dart index f42da4d181..e85424c1de 100644 --- a/app/lib/frontend/handlers/experimental.dart +++ b/app/lib/frontend/handlers/experimental.dart @@ -9,13 +9,7 @@ import '../../shared/cookie_utils.dart'; typedef PublicFlag = ({String name, String description}); const _publicFlags = { - (name: 'dark', description: 'Dark mode'), - (name: 'search-completion', description: 'Completions for the search bar'), (name: 'search-topics', description: 'Show matching topics when searching'), - ( - name: 'download-counts-version-chart', - description: 'Show downloads counts version chart' - ), }; final _allFlags = { @@ -92,14 +86,10 @@ class ExperimentalFlags { return params; } - bool get isSearchCompletionEnabled => true; bool get isSearchTopicsEnabled => isEnabled('search-topics'); - bool get isDarkModeEnabled => true; bool get isDarkModeDefault => isEnabled('dark-as-default'); - bool get showDownloadCountsVersionChart => true; - String encodedAsCookie() => _enabled.join(':'); @override diff --git a/app/lib/frontend/templates/views/pkg/score_tab.dart b/app/lib/frontend/templates/views/pkg/score_tab.dart index 9a61026d20..be621b7915 100644 --- a/app/lib/frontend/templates/views/pkg/score_tab.dart +++ b/app/lib/frontend/templates/views/pkg/score_tab.dart @@ -14,7 +14,6 @@ import 'package:pub_dev/shared/utils.dart'; import '../../../../scorecard/models.dart' hide ReportStatus; import '../../../../shared/urls.dart' as urls; import '../../../dom/dom.dart' as d; -import '../../../request_context.dart'; import '../../../static_files.dart'; /// Renders the score page content. @@ -95,8 +94,7 @@ d.Node scoreTabNode({ d.text(' for details.'), ], ), - if (card.weeklyVersionDownloads != null && - requestContext.experimentalFlags.showDownloadCountsVersionChart) + if (card.weeklyVersionDownloads != null) _downloadsChart(card.weeklyVersionDownloads!), ]); } diff --git a/app/lib/frontend/templates/views/shared/search_banner.dart b/app/lib/frontend/templates/views/shared/search_banner.dart index ef455c5de8..be6862ca4b 100644 --- a/app/lib/frontend/templates/views/shared/search_banner.dart +++ b/app/lib/frontend/templates/views/shared/search_banner.dart @@ -5,7 +5,6 @@ import 'dart:convert'; import 'package:_pub_shared/data/completion.dart'; -import 'package:pub_dev/frontend/request_context.dart'; import '../../../dom/dom.dart' as d; import '../../../static_files.dart' show staticUrls; @@ -36,8 +35,7 @@ d.Node searchBannerNode({ value: queryText, attributes: { 'title': 'Search', - if (requestContext.experimentalFlags.isSearchCompletionEnabled) - 'data-widget': 'completion', + 'data-widget': 'completion', 'data-completion-src': '/api/search-input-completion-data', 'data-completion-class': 'search-completion', }, diff --git a/app/lib/frontend/templates/views/shared/site_header.dart b/app/lib/frontend/templates/views/shared/site_header.dart index c5b8ffa8bf..cbb421ebaf 100644 --- a/app/lib/frontend/templates/views/shared/site_header.dart +++ b/app/lib/frontend/templates/views/shared/site_header.dart @@ -2,8 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:pub_dev/frontend/request_context.dart'; - import '../../../../account/models.dart' show SessionData; import '../../../../shared/urls.dart' as urls; import '../../../dom/dom.dart' as d; @@ -116,24 +114,17 @@ d.Node siteHeaderNode({ _userBlock(userSession), ], ), - _themeSwitcher(), + // TODO: consider using Material symbols similar to dartdoc: + // dark_mode + // light_mode + d.button( + classes: ['-pub-theme-toggle'], + ariaLabel: 'light/dark theme toggle', + ), ], ); } -d.Node _themeSwitcher() { - // dark_mode - // light_mode - if (requestContext.experimentalFlags.isDarkModeEnabled) { - return d.fragment([ - d.button( - classes: ['-pub-theme-toggle'], ariaLabel: 'light/dark theme toggle'), - ]); - } else { - return d.fragment([]); - } -} - d.Node _userBlock(SessionData userSession) { return d.div( classes: ['nav-container', 'nav-profile-container', 'hoverable'], diff --git a/pkg/pub_integration/test/search_completition_test.dart b/pkg/pub_integration/test/search_completition_test.dart index 12d8ffd716..2dcab4025e 100644 --- a/pkg/pub_integration/test/search_completition_test.dart +++ b/pkg/pub_integration/test/search_completition_test.dart @@ -44,8 +44,6 @@ void main() { final user = await fakeTestScenario.createAnonymousTestUser(); await user.withBrowserPage((page) async { - await page.gotoOrigin('/experimental?search-completion=1'); - await page.gotoOrigin('/'); await page.keyboard.type('is:un'); await Future.delayed(Duration(milliseconds: 200)); @@ -59,8 +57,6 @@ void main() { }); await user.withBrowserPage((page) async { - await page.gotoOrigin('/experimental?search-completion=1'); - await page.gotoOrigin('/packages?q=abc'); await page.focus('input[name="q"]'); // go to the end of the input field and start typing diff --git a/pkg/pub_integration/test/theme_switch_test.dart b/pkg/pub_integration/test/theme_switch_test.dart index b89f49159f..b953d1a089 100644 --- a/pkg/pub_integration/test/theme_switch_test.dart +++ b/pkg/pub_integration/test/theme_switch_test.dart @@ -41,8 +41,6 @@ void main() { // test keyboard navigation await user.withBrowserPage((page) async { - await page.gotoOrigin('/experimental?dark=1'); - Future expectDarkTheme() async { expect(await page.$OrNull('body.light-theme'), isNull); expect(await page.$OrNull('body.dark-theme'), isNotNull); From 37bb9322b35863671e18925b75300d42e66cebd7 Mon Sep 17 00:00:00 2001 From: Istvan Soos Date: Wed, 12 Feb 2025 12:01:03 +0100 Subject: [PATCH 2/2] Fix independently failing SDK dartdoc test. --- app/test/search/backend_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test/search/backend_test.dart b/app/test/search/backend_test.dart index b70133181e..4e02d43c9c 100644 --- a/app/test/search/backend_test.dart +++ b/app/test/search/backend_test.dart @@ -17,7 +17,7 @@ void main() { final descr = await searchBackend.fetchSdkLibraryDescriptions( baseUri: index.baseUri, libraryRelativeUrls: { - 'dart:async': 'dart-async/dart-async-library.html', + 'dart:async': 'dart-async/index.html', }, ); expect(descr, {