Commit bac78793 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Settings: Add Polymer 3 bundle, run Polymer 3 tests in optimized builds

- Bundle the autogenerated Polymer 3 settings resources into a new
  settings.rollup.js file
- Include this file in optimized builds
- Run Polymer 3 settings browser_tests in optimized builds

This will prevent developers from accidentally breaking debug builders
that are not run by default in the CQ.

Bug: 1026426
Change-Id: I42122e1a4fa2dbc5bfb20dd0586a961e8cbec745
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2032187
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737981}
parent 2d44c836
......@@ -214,7 +214,10 @@ if (!is_android) {
# The .grd contains references to generated files.
source_is_generated = true
deps = [ "//chrome/browser/resources/settings:build" ]
deps = [
"//chrome/browser/resources/settings:build",
"//chrome/browser/resources/settings:build_polymer3",
]
} else {
source = "settings/settings_resources.grd"
deps = [ "//chrome/browser/resources/settings:polymer3_elements" ]
......
......@@ -308,7 +308,7 @@ def _optimize(in_folder, args):
in_path = os.path.normpath(os.path.join(_CWD, in_folder)).replace('\\', '/')
out_path = os.path.join(_CWD, args.out_folder).replace('\\', '/')
manifest_out_path = _request_list_path(out_path, args.host)
tmp_out_dir = os.path.join(out_path, 'bundled').replace('\\', '/')
tmp_out_dir = tempfile.mkdtemp(dir=out_path).replace('\\', '/')
excludes = _BASE_EXCLUDES + [
# This file is dynamically created by C++. Need to specify an exclusion
......
......@@ -36,6 +36,19 @@ if (optimize_webui) {
deps = [ ":unpak" ]
}
optimize_webui("build_polymer3") {
host = "settings"
input = rebase_path("$target_gen_dir/$unpak_folder", root_build_dir)
js_out_files = [ "settings.rollup.js" ]
js_module_in_files = [ "settings.js" ]
deps = [
":unpak",
"../../../../ui/webui/resources:modulize",
]
excludes = [ "chrome://resources/js/cr.m.js" ]
}
unpak("unpak") {
pak_file = settings_pak_file
out_folder = unpak_folder
......
......@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://settings/controls/controlled_button.m.js';
import 'chrome://settings/controls/controlled_radio_button.m.js';
import 'chrome://settings/controls/extension_controlled_indicator.m.js';
import 'chrome://settings/controls/settings_checkbox.m.js';
import 'chrome://settings/controls/settings_dropdown_menu.m.js';
import 'chrome://settings/controls/settings_slider.m.js';
import 'chrome://settings/controls/settings_textarea.m.js';
import 'chrome://settings/controls/settings_toggle_button.m.js';
import './controls/controlled_button.m.js';
import './controls/controlled_radio_button.m.js';
import './controls/extension_controlled_indicator.m.js';
import './controls/settings_checkbox.m.js';
import './controls/settings_dropdown_menu.m.js';
import './controls/settings_slider.m.js';
import './controls/settings_textarea.m.js';
import './controls/settings_toggle_button.m.js';
export {ExtensionControlBrowserProxyImpl} from 'chrome://settings/extension_control_browser_proxy.m.js';
export {prefToString, stringToPrefValue} from 'chrome://settings/prefs/pref_util.m.js';
export {ExtensionControlBrowserProxyImpl} from './extension_control_browser_proxy.m.js';
export {prefToString, stringToPrefValue} from './prefs/pref_util.m.js';
......@@ -4,87 +4,70 @@
<include name="IDR_SETTINGS_CONTROLS_CONTROLLED_BUTTON_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/controlled_button.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_CONTROLLED_RADIO_BUTTON_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/controlled_radio_button.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_EXTENSION_CONTROLLED_INDICATOR_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/extension_controlled_indicator.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_PASSWORD_PROMPT_DIALOG_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/password_prompt_dialog.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_BOOLEAN_CONTROL_BEHAVIOR_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_boolean_control_behavior.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_CHECKBOX_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_checkbox.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_DROPDOWN_MENU_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_dropdown_menu.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_PREF_CONTROL_BEHAVIOR_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/pref_control_behavior.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_RADIO_GROUP_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_radio_group.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_SLIDER_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_slider.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_TEXTAREA_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_textarea.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_TOGGLE_BUTTON_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_toggle_button.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_EXTENSION_CONTROL_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/extension_control_browser_proxy.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_I18N_SETUP_M_JS"
file="i18n_setup.m.js"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_PREFS_PREFS_TYPES_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/prefs/prefs_types.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_PREFS_PREF_UTIL_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/prefs/pref_util.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_ROUTER_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/router.m.js"
use_base_dir="false"
type="BINDATA"
compress="gzip" />
type="BINDATA" />
<include name="IDR_SETTINGS_SEARCH_SETTINGS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/search_settings.m.js"
use_base_dir="false"
......@@ -93,14 +76,12 @@
file="${root_gen_dir}/chrome/browser/resources/settings/settings_shared_css.m.js"
use_base_dir="false"
type="BINDATA"
preprocess="true"
compress="gzip" />
preprocess="true" />
<include name="IDR_SETTINGS_SETTINGS_VARS_CSS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/settings_vars_css.m.js"
use_base_dir="false"
type="BINDATA"
preprocess="true"
compress="gzip" />
preprocess="true" />
<include name="IDR_SETTINGS_SETTINGS_V3_HTML"
file="settings_v3.html"
type="BINDATA" />
......
......@@ -12,10 +12,39 @@
</outputs>
<release seq="1">
<includes>
<include name="IDR_SETTINGS_VULCANIZED_HTML" file="${root_gen_dir}\chrome\browser\resources\settings\vulcanized.html" use_base_dir="false" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_SETTINGS_CRISPER_JS" file="${root_gen_dir}\chrome\browser\resources\settings\crisper.js" use_base_dir="false" flattenhtml="true" type="BINDATA" compress="gzip" />
<include name="IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML" file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.vulcanized.html" use_base_dir="false" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_SETTINGS_LAZY_LOAD_CRISPER_JS" file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.crisper.js" use_base_dir="false" flattenhtml="true" type="BINDATA" compress="gzip" />
<include name="IDR_SETTINGS_VULCANIZED_HTML"
file="${root_gen_dir}\chrome\browser\resources\settings\vulcanized.html"
use_base_dir="false"
flattenhtml="true"
allowexternalscript="true"
type="BINDATA"
compress="gzip" />
<include name="IDR_SETTINGS_CRISPER_JS"
file="${root_gen_dir}\chrome\browser\resources\settings\crisper.js"
use_base_dir="false"
flattenhtml="true"
type="BINDATA"
compress="gzip" />
<include name="IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML"
file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.vulcanized.html"
use_base_dir="false"
flattenhtml="true"
allowexternalscript="true"
type="BINDATA"
compress="gzip" />
<include name="IDR_SETTINGS_LAZY_LOAD_CRISPER_JS"
file="${root_gen_dir}\chrome\browser\resources\settings\lazy_load.crisper.js"
use_base_dir="false"
flattenhtml="true"
type="BINDATA"
compress="gzip" />
<!-- Polymer 3 related files -->
<include name="IDR_SETTINGS_SETTINGS_ROLLUP_JS"
file="${root_gen_dir}\chrome\browser\resources\settings\settings.rollup.js"
use_base_dir="false"
preprocess="true"
compress="gzip"
type="BINDATA" />
</includes>
</release>
</grit>
......@@ -296,6 +296,9 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
html_source->AddResourcePath("lazy_load.html",
IDR_SETTINGS_LAZY_LOAD_VULCANIZED_HTML);
html_source->SetDefaultResource(IDR_SETTINGS_VULCANIZED_HTML);
// Only used in Polymer 3, see https://crbug.com/1026426.
html_source->AddResourcePath("settings.js", IDR_SETTINGS_SETTINGS_ROLLUP_JS);
#else
webui::SetupWebUIDataSource(
html_source, base::make_span(kSettingsResources, kSettingsResourcesSize),
......
......@@ -3,13 +3,10 @@
// found in the LICENSE file.
/** @fileoverview Tests for shared Polymer 3 elements. */
GEN('#include "chrome/common/buildflags.h"');
// Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
// Settings v3 resources are only available in non optimized builds.
GEN('#if !BUILDFLAG(OPTIMIZE_WEBUI)');
/** Test fixture for shared Polymer 3 elements. */
// eslint-disable-next-line no-var
var CrSettingsV3BrowserTest = class extends PolymerTest {
......@@ -135,5 +132,3 @@ var CrSettingsToggleButtonV3Test = class extends CrSettingsV3BrowserTest {
TEST_F('CrSettingsToggleButtonV3Test', 'All', function() {
mocha.run();
});
GEN('#endif // !BUILDFLAG(OPTIMIZE_WEBUI)');
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