Commit 33164995 authored by Demetrios Papadopoulos's avatar Demetrios Papadopoulos Committed by Commit Bot

Settings: Create dummy chrome://settings/settings_v3.html page.

 - Modify Settings data source to serve generated files.
 - Add top-level JS/HTML files that will host the V3 version.
 - Use a JS import for the generated
   chrome://settings/search_settings.m.js as a proof of concept.
 - Update BUILD.gn files as needed.

Note that the dummy page is currently only available for
optimized_webui=false builds.

This is in preparation of migrating to Polymer 3.

Bug: 1026426
Change-Id: I53dc831bfad3cf4645fa91c643bd5e34d14190de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2024161
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736112}
parent 323de3b8
...@@ -216,6 +216,7 @@ if (!is_android) { ...@@ -216,6 +216,7 @@ if (!is_android) {
deps = [ "//chrome/browser/resources/settings:build" ] deps = [ "//chrome/browser/resources/settings:build" ]
} else { } else {
source = "settings/settings_resources.grd" source = "settings/settings_resources.grd"
deps = [ "//chrome/browser/resources/settings:polymer3_elements" ]
} }
defines = chrome_grit_defines defines = chrome_grit_defines
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import("//chrome/common/features.gni") import("//chrome/common/features.gni")
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("//tools/grit/grit_rule.gni") import("//tools/grit/grit_rule.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("//ui/webui/webui_features.gni") import("//ui/webui/webui_features.gni")
import("../optimize_webui.gni") import("../optimize_webui.gni")
...@@ -45,7 +46,12 @@ if (optimize_webui) { ...@@ -45,7 +46,12 @@ if (optimize_webui) {
# The .grd contains references to generated files. # The .grd contains references to generated files.
source_is_generated = true source_is_generated = true
grit_flags = [
"-E",
"root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [ ":polymer3_elements" ]
defines = chrome_grit_defines defines = chrome_grit_defines
outputs = [ outputs = [
"grit/settings_resources.h", "grit/settings_resources.h",
...@@ -186,3 +192,13 @@ js_library("search_settings") { ...@@ -186,3 +192,13 @@ js_library("search_settings") {
] ]
externs_list = [ "$externs_path/pending_polymer.js" ] externs_list = [ "$externs_path/pending_polymer.js" ]
} }
# Polymer 3 related rules.
group("polymer3_elements") {
public_deps = [ ":modulize" ]
}
js_modulizer("modulize") {
input_files = [ "search_settings.js" ]
}
...@@ -603,7 +603,7 @@ cr.define('settings', function() { ...@@ -603,7 +603,7 @@ cr.define('settings', function() {
let instance = null; let instance = null;
/** @return {!SearchManager} */ /** @return {!SearchManager} */
function getSearchManager() { /* #export */ function getSearchManager() {
if (instance === null) { if (instance === null) {
instance = new SearchManagerImpl(); instance = new SearchManagerImpl();
} }
...@@ -618,6 +618,7 @@ cr.define('settings', function() { ...@@ -618,6 +618,7 @@ cr.define('settings', function() {
instance = searchManager; instance = searchManager;
} }
// #cr_define_end
return { return {
getSearchManager, getSearchManager,
setSearchManagerForTesting, setSearchManagerForTesting,
......
import {getSearchManager} from 'chrome://settings/search_settings.m.js';
console.log('getSearchManager', getSearchManager);
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<grit-part> <grit-part>
<!--TODO(crbug.com/1026426): Add generated Polymer 3 files here--> <include name="IDR_SETTINGS_SEARCH_SETTINGS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/search_settings.m.js"
use_base_dir="false"
type="BINDATA" />
<include name="IDR_SETTINGS_SETTINGS_V3_HTML"
file="settings_v3.html"
type="BINDATA" />
<include name="IDR_SETTINGS_SETTINGS_V3_JS"
file="settings.js"
type="BINDATA" />
</grit-part> </grit-part>
<!doctype html>
<html dir="$i18n{textdirection}" lang="$i18n{language}" class="loading"
$i18n{a11yenhanced}>
<head>
<meta charset="utf-8">
<title>$i18n{settings}</title>
<base href="chrome://settings">
<link rel="stylesheet" href="chrome://resources/css/md_colors.css">
<style>
html {
background: var(--md-background-color);
overflow: hidden;
/* Remove 300ms delay for 'click' event, when using touch interface. */
touch-action: manipulation;
}
html.loading::before {
background-color: var(--md-toolbar-color);
border-bottom: var(--md-toolbar-border);
box-sizing: border-box;
content: '';
display: block;
height: var(--md-toolbar-height);
}
</style>
</head>
<body>
<link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
<script type="module" src="settings.js"></script>
</body>
</html>
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#include "chrome/browser/ui/webui/settings/settings_startup_pages_handler.h" #include "chrome/browser/ui/webui/settings/settings_startup_pages_handler.h"
#include "chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.h" #include "chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.h"
#include "chrome/browser/ui/webui/settings/site_settings_handler.h" #include "chrome/browser/ui/webui/settings/site_settings_handler.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/browser/web_applications/components/app_registrar.h" #include "chrome/browser/web_applications/components/app_registrar.h"
#include "chrome/browser/web_applications/web_app_provider.h" #include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h" #include "chrome/browser/web_applications/web_app_registrar.h"
...@@ -120,6 +121,11 @@ ...@@ -120,6 +121,11 @@
#include "chrome/browser/ui/webui/settings/printing_handler.h" #include "chrome/browser/ui/webui/settings/printing_handler.h"
#endif #endif
#if !BUILDFLAG(OPTIMIZE_WEBUI)
constexpr char kGeneratedPath[] =
"@out_folder@/gen/chrome/browser/resources/settings/";
#endif
namespace settings { namespace settings {
// static // static
void SettingsUI::RegisterProfilePrefs( void SettingsUI::RegisterProfilePrefs(
...@@ -144,14 +150,16 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) ...@@ -144,14 +150,16 @@ 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 SetupWebUIDataSource() // TODO(dpapad): Replace the following calls with
// when Settings is migrated to Polymer3. // SetupBundledWebUIDataSource() when Settings is migrated to Polymer3.
// Currently only used for testing the Polymer 3 version of // Currently only used for testing the Polymer 3 version of
// certificate-manager. // certificate-manager.
#if BUILDFLAG(OPTIMIZE_WEBUI)
html_source->OverrideContentSecurityPolicyScriptSrc( html_source->OverrideContentSecurityPolicyScriptSrc(
"script-src chrome://resources chrome://test 'self';"); "script-src chrome://resources chrome://test 'self';");
html_source->AddResourcePath("test_loader.js", IDR_WEBUI_JS_TEST_LOADER); html_source->AddResourcePath("test_loader.js", IDR_WEBUI_JS_TEST_LOADER);
html_source->AddResourcePath("test_loader.html", IDR_WEBUI_HTML_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));
...@@ -284,12 +292,9 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) ...@@ -284,12 +292,9 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML); IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML);
html_source->SetDefaultResource(IDR_SETTINGS_VULCANIZED_HTML); html_source->SetDefaultResource(IDR_SETTINGS_VULCANIZED_HTML);
#else #else
// Add all settings resources. webui::SetupWebUIDataSource(
for (size_t i = 0; i < kSettingsResourcesSize; ++i) { html_source, base::make_span(kSettingsResources, kSettingsResourcesSize),
html_source->AddResourcePath(kSettingsResources[i].name, kGeneratedPath, IDR_SETTINGS_SETTINGS_HTML);
kSettingsResources[i].value);
}
html_source->SetDefaultResource(IDR_SETTINGS_SETTINGS_HTML);
#endif #endif
AddSharedLocalizedStrings(html_source, profile, web_ui->GetWebContents()); AddSharedLocalizedStrings(html_source, profile, web_ui->GetWebContents());
......
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