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",
const base::Feature kWebUITabStripDemoOptions{
"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.
// https://crbug.com/1035421.
const base::Feature kSyncSetupFriendlySettings{
......
......@@ -50,6 +50,8 @@ extern const base::Feature kWebUITabStrip;
extern const base::Feature kWebUITabStripDemoOptions;
extern const base::Feature kSettingsPolymer3;
extern const base::Feature kSyncSetupFriendlySettings;
#if defined(OS_CHROMEOS)
......
......@@ -161,18 +161,6 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
content::WebUIDataSource* html_source =
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));
#if defined(USE_NSS_CERTS)
......@@ -319,12 +307,22 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
web_ui->AddMessageHandler(std::make_unique<MetricsHandler>());
#if BUILDFLAG(OPTIMIZE_WEBUI)
if (base::FeatureList::IsEnabled(features::kSettingsPolymer3)) {
webui::SetupBundledWebUIDataSource(html_source, "settings.js",
IDR_SETTINGS_SETTINGS_ROLLUP_JS,
IDR_SETTINGS_SETTINGS_V3_HTML);
html_source->AddResourcePath("shared.rollup.js",
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
// above.
......@@ -356,18 +354,13 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
"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
webui::SetupWebUIDataSource(
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
AddBrowserLocalizedStrings(html_source, profile, web_ui->GetWebContents());
......
......@@ -6,6 +6,7 @@
// Polymer BrowserTest fixture.
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"');
/** Test fixture for shared Polymer 3 components. */
......@@ -59,7 +60,12 @@ var CrComponentsCertificateManagerV3Test =
/** @override */
get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']};
return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
]
};
}
};
......
......@@ -6,6 +6,7 @@
// Polymer BrowserTest fixture.
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"');
/** Test fixture for shared Polymer 3 elements. */
......@@ -318,7 +319,12 @@ var CrElementsPolicyPrefIndicatorV3Test =
/** @override */
get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']};
return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
]
};
}
};
......
......@@ -6,12 +6,13 @@
// Polymer BrowserTest fixture.
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 "chrome/browser/ui/ui_features.h"');
GEN('#include "chrome/common/chrome_features.h"');
GEN('#include "components/autofill/core/common/autofill_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. */
// eslint-disable-next-line no-var
......@@ -31,7 +32,13 @@ var CrSettingsV3BrowserTest = class extends PolymerTest {
/** @override */
get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors'], disabled: []};
return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
],
disabled: [],
};
}
};
......
......@@ -7,6 +7,8 @@
// Polymer BrowserTest fixture.
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. */
// eslint-disable-next-line no-var
var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest {
......@@ -22,6 +24,11 @@ var CrSettingsV3InteractiveUITest = class extends PolymerInteractiveUITest {
'//chrome/test/data/webui/mocha_adapter.js',
];
}
/** @override */
get featureList() {
return {enabled: ['features::kSettingsPolymer3'], disabled: []};
}
};
// eslint-disable-next-line no-var
......
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
GEN('#include "chrome/browser/ui/ui_features.h"');
GEN('#include "services/network/public/cpp/features.h"');
/**
......@@ -27,7 +28,15 @@ SettingsIdleLoadV3BrowserTest.prototype = {
isAsync: true,
/** @override */
featureList: {enabled: ['network::features::kOutOfBlinkCors']},
get featureList() {
return {
enabled: [
'network::features::kOutOfBlinkCors',
'features::kSettingsPolymer3',
],
disabled: [],
};
},
};
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