Commit b8677adc authored by dpapad's avatar dpapad Committed by Commit Bot

Settings: Add SettingsPolymer3 feature flag.

When the flag is on, chrome://settings serves the Polymer3 version.

Bug: 1026426
Change-Id: I376abc974caa2772cd70ff4ce6f4d4b28b5b1796
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2137912
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Auto-Submit: dpapad <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756922}
parent 897fae95
...@@ -90,6 +90,11 @@ const base::Feature kWebUITabStrip{"WebUITabStrip", ...@@ -90,6 +90,11 @@ const base::Feature kWebUITabStrip{"WebUITabStrip",
const base::Feature kWebUITabStripDemoOptions{ const base::Feature kWebUITabStripDemoOptions{
"WebUITabStripDemoOptions", base::FEATURE_DISABLED_BY_DEFAULT}; "WebUITabStripDemoOptions", base::FEATURE_DISABLED_BY_DEFAULT};
// Makes chrome://settings serve the Polymer 3 version of that page.
// https://crbug.com/1026426.
const base::Feature kSettingsPolymer3{"SettingsPolymer3",
base::FEATURE_DISABLED_BY_DEFAULT};
// Enables friendly settings for the |chrome://settings/syncSetup| page. // Enables friendly settings for the |chrome://settings/syncSetup| page.
// https://crbug.com/1035421. // https://crbug.com/1035421.
const base::Feature kSyncSetupFriendlySettings{ const base::Feature kSyncSetupFriendlySettings{
......
...@@ -50,6 +50,8 @@ extern const base::Feature kWebUITabStrip; ...@@ -50,6 +50,8 @@ extern const base::Feature kWebUITabStrip;
extern const base::Feature kWebUITabStripDemoOptions; extern const base::Feature kWebUITabStripDemoOptions;
extern const base::Feature kSettingsPolymer3;
extern const base::Feature kSyncSetupFriendlySettings; extern const base::Feature kSyncSetupFriendlySettings;
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
......
...@@ -161,18 +161,6 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) ...@@ -161,18 +161,6 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
content::WebUIDataSource* html_source = content::WebUIDataSource* html_source =
content::WebUIDataSource::Create(chrome::kChromeUISettingsHost); content::WebUIDataSource::Create(chrome::kChromeUISettingsHost);
// TODO(dpapad): Replace the following calls with
// SetupBundledWebUIDataSource() when Settings is migrated to Polymer3.
// Currently only used for testing the Polymer 3 version of
// certificate-manager.
#if BUILDFLAG(OPTIMIZE_WEBUI)
html_source->EnableReplaceI18nInJS();
html_source->OverrideContentSecurityPolicyScriptSrc(
"script-src chrome://resources chrome://test 'self';");
html_source->AddResourcePath("test_loader.js", IDR_WEBUI_JS_TEST_LOADER);
html_source->AddResourcePath("test_loader.html", IDR_WEBUI_HTML_TEST_LOADER);
#endif
AddSettingsPageUIHandler(std::make_unique<AppearanceHandler>(web_ui)); AddSettingsPageUIHandler(std::make_unique<AppearanceHandler>(web_ui));
#if defined(USE_NSS_CERTS) #if defined(USE_NSS_CERTS)
...@@ -319,12 +307,22 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) ...@@ -319,12 +307,22 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
web_ui->AddMessageHandler(std::make_unique<MetricsHandler>()); web_ui->AddMessageHandler(std::make_unique<MetricsHandler>());
#if BUILDFLAG(OPTIMIZE_WEBUI) #if BUILDFLAG(OPTIMIZE_WEBUI)
html_source->AddResourcePath("crisper.js", IDR_SETTINGS_CRISPER_JS); if (base::FeatureList::IsEnabled(features::kSettingsPolymer3)) {
html_source->AddResourcePath("lazy_load.crisper.js", webui::SetupBundledWebUIDataSource(html_source, "settings.js",
IDR_SETTINGS_LAZY_LOAD_CRISPER_JS); IDR_SETTINGS_SETTINGS_ROLLUP_JS,
html_source->AddResourcePath("lazy_load.html", IDR_SETTINGS_SETTINGS_V3_HTML);
IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML); html_source->AddResourcePath("shared.rollup.js",
html_source->SetDefaultResource(IDR_SETTINGS_VULCANIZED_HTML); IDR_SETTINGS_SHARED_ROLLUP_JS);
html_source->AddResourcePath("lazy_load.js",
IDR_SETTINGS_LAZY_LOAD_ROLLUP_JS);
} else {
html_source->AddResourcePath("crisper.js", IDR_SETTINGS_CRISPER_JS);
html_source->AddResourcePath("lazy_load.crisper.js",
IDR_SETTINGS_LAZY_LOAD_CRISPER_JS);
html_source->AddResourcePath("lazy_load.html",
IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML);
html_source->SetDefaultResource(IDR_SETTINGS_VULCANIZED_HTML);
}
// Register SVG images that are purposefully not inlined in the HTML bundle // Register SVG images that are purposefully not inlined in the HTML bundle
// above. // above.
...@@ -356,18 +354,13 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) ...@@ -356,18 +354,13 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
"images/password_check_positive_dark.svg", "images/password_check_positive_dark.svg",
IDR_SETTINGS_IMAGES_PASSWORD_CHECK_POSITIVE_DARK_SVG); IDR_SETTINGS_IMAGES_PASSWORD_CHECK_POSITIVE_DARK_SVG);
// Only used in Polymer 3, see https://crbug.com/1026426.
html_source->AddResourcePath("settings.js", IDR_SETTINGS_SETTINGS_ROLLUP_JS);
html_source->AddResourcePath("shared.rollup.js",
IDR_SETTINGS_SHARED_ROLLUP_JS);
html_source->AddResourcePath("lazy_load.js",
IDR_SETTINGS_LAZY_LOAD_ROLLUP_JS);
html_source->AddResourcePath("settings_v3.html",
IDR_SETTINGS_SETTINGS_V3_HTML);
#else #else
webui::SetupWebUIDataSource( webui::SetupWebUIDataSource(
html_source, base::make_span(kSettingsResources, kSettingsResourcesSize), html_source, base::make_span(kSettingsResources, kSettingsResourcesSize),
kGeneratedPath, IDR_SETTINGS_SETTINGS_HTML); kGeneratedPath,
base::FeatureList::IsEnabled(features::kSettingsPolymer3)
? IDR_SETTINGS_SETTINGS_V3_HTML
: IDR_SETTINGS_SETTINGS_HTML);
#endif #endif
AddBrowserLocalizedStrings(html_source, profile, web_ui->GetWebContents()); AddBrowserLocalizedStrings(html_source, profile, web_ui->GetWebContents());
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// Polymer BrowserTest fixture. // Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']); GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
GEN('#include "chrome/browser/ui/ui_features.h"');
GEN('#include "services/network/public/cpp/features.h"'); GEN('#include "services/network/public/cpp/features.h"');
/** Test fixture for shared Polymer 3 components. */ /** Test fixture for shared Polymer 3 components. */
...@@ -59,7 +60,12 @@ var CrComponentsCertificateManagerV3Test = ...@@ -59,7 +60,12 @@ var CrComponentsCertificateManagerV3Test =
/** @override */ /** @override */
get featureList() { get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']}; return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
]
};
} }
}; };
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// Polymer BrowserTest fixture. // Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']); GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
GEN('#include "chrome/browser/ui/ui_features.h"');
GEN('#include "services/network/public/cpp/features.h"'); GEN('#include "services/network/public/cpp/features.h"');
/** Test fixture for shared Polymer 3 elements. */ /** Test fixture for shared Polymer 3 elements. */
...@@ -318,7 +319,12 @@ var CrElementsPolicyPrefIndicatorV3Test = ...@@ -318,7 +319,12 @@ var CrElementsPolicyPrefIndicatorV3Test =
/** @override */ /** @override */
get featureList() { get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']}; return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
]
};
} }
}; };
......
...@@ -6,12 +6,13 @@ ...@@ -6,12 +6,13 @@
// Polymer BrowserTest fixture. // Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']); GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
GEN('#include "services/network/public/cpp/features.h"');
GEN('#include "build/branding_buildflags.h"'); GEN('#include "build/branding_buildflags.h"');
GEN('#include "chrome/browser/ui/ui_features.h"');
GEN('#include "chrome/common/chrome_features.h"'); GEN('#include "chrome/common/chrome_features.h"');
GEN('#include "components/autofill/core/common/autofill_features.h"'); GEN('#include "components/autofill/core/common/autofill_features.h"');
GEN('#include "components/password_manager/core/common/password_manager_features.h"'); GEN('#include "components/password_manager/core/common/password_manager_features.h"');
GEN('#include "services/network/public/cpp/features.h"');
/** Test fixture for shared Polymer 3 elements. */ /** Test fixture for shared Polymer 3 elements. */
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
...@@ -31,7 +32,13 @@ var CrSettingsV3BrowserTest = class extends PolymerTest { ...@@ -31,7 +32,13 @@ var CrSettingsV3BrowserTest = class extends PolymerTest {
/** @override */ /** @override */
get featureList() { get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors'], disabled: []}; return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
],
disabled: [],
};
} }
}; };
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
// Polymer BrowserTest fixture. // Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_interactive_ui_test.js']); GEN_INCLUDE(['//chrome/test/data/webui/polymer_interactive_ui_test.js']);
GEN('#include "chrome/browser/ui/ui_features.h"');
/** Test fixture for shared Polymer 3 elements. */ /** Test fixture for shared Polymer 3 elements. */
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest { var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest {
...@@ -22,6 +24,11 @@ var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest { ...@@ -22,6 +24,11 @@ var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest {
'//chrome/test/data/webui/mocha_adapter.js', '//chrome/test/data/webui/mocha_adapter.js',
]; ];
} }
/** @override */
get featureList() {
return {enabled: ['features::kSettingsPolymer3'], disabled: []};
}
}; };
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
GEN('#include "chrome/browser/ui/ui_features.h"');
GEN('#include "services/network/public/cpp/features.h"'); GEN('#include "services/network/public/cpp/features.h"');
/** /**
...@@ -27,7 +28,15 @@ SettingsIdleLoadV3BrowserTest.prototype = { ...@@ -27,7 +28,15 @@ SettingsIdleLoadV3BrowserTest.prototype = {
isAsync: true, isAsync: true,
/** @override */ /** @override */
featureList: {enabled: ['network::features::kOutOfBlinkCors']}, get featureList() {
return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
],
disabled: [],
};
},
}; };
TEST_F('SettingsIdleLoadV3BrowserTest', 'All', function() { TEST_F('SettingsIdleLoadV3BrowserTest', 'All', function() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment