Commit 12bca027 authored by dpapad's avatar dpapad Committed by Commit Bot

Settings: Check-in settings_idle_load.js JS module instead of auto-generating.

This file is no longer shared between OS and Browser Settings, and can
be fully migrated to JS modules.

Also, did minor cleanups now that were possible as a result of dropping
the Polymer2 codepath.

Bug: 1069258
Change-Id: Ia0da4ac10f2858fa4fc5fe460de3b96c203bc733
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2343010
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@{#796167}
parent 9b241f8f
...@@ -15,7 +15,7 @@ import '../appearance_page/appearance_page.js'; ...@@ -15,7 +15,7 @@ import '../appearance_page/appearance_page.js';
import '../privacy_page/privacy_page.js'; import '../privacy_page/privacy_page.js';
import '../safety_check_page/safety_check_page.js'; import '../safety_check_page/safety_check_page.js';
import '../autofill_page/autofill_page.js'; import '../autofill_page/autofill_page.js';
import '../controls/settings_idle_load.m.js'; import '../controls/settings_idle_load.js';
import '../on_startup_page/on_startup_page.js'; import '../on_startup_page/on_startup_page.js';
import '../people_page/people_page.js'; import '../people_page/people_page.js';
import '../reset_page/reset_profile_banner.js'; import '../reset_page/reset_profile_banner.js';
......
...@@ -17,7 +17,6 @@ js_type_check("closure_compile") { ...@@ -17,7 +17,6 @@ js_type_check("closure_compile") {
":pref_control_behavior", ":pref_control_behavior",
":settings_boolean_control_behavior", ":settings_boolean_control_behavior",
":settings_dropdown_menu", ":settings_dropdown_menu",
":settings_idle_load",
":settings_radio_group", ":settings_radio_group",
":settings_slider", ":settings_slider",
":settings_textarea", ":settings_textarea",
...@@ -88,11 +87,6 @@ js_library("settings_dropdown_menu") { ...@@ -88,11 +87,6 @@ js_library("settings_dropdown_menu") {
externs_list = [ "$externs_path/settings_private.js" ] externs_list = [ "$externs_path/settings_private.js" ]
} }
js_library("settings_idle_load") {
deps = [ "//ui/webui/resources/js:assert" ]
externs_list = [ "$externs_path/pending_polymer.js" ]
}
js_library("settings_radio_group") { js_library("settings_radio_group") {
deps = [ deps = [
":pref_control_behavior", ":pref_control_behavior",
...@@ -133,7 +127,7 @@ js_type_check("closure_compile_module") { ...@@ -133,7 +127,7 @@ js_type_check("closure_compile_module") {
":settings_boolean_control_behavior.m", ":settings_boolean_control_behavior.m",
":settings_checkbox", ":settings_checkbox",
":settings_dropdown_menu.m", ":settings_dropdown_menu.m",
":settings_idle_load.m", ":settings_idle_load",
":settings_radio_group.m", ":settings_radio_group.m",
":settings_slider.m", ":settings_slider.m",
":settings_textarea.m", ":settings_textarea.m",
...@@ -228,13 +222,11 @@ js_library("settings_dropdown_menu.m") { ...@@ -228,13 +222,11 @@ js_library("settings_dropdown_menu.m") {
extra_deps = [ ":settings_dropdown_menu_module" ] extra_deps = [ ":settings_dropdown_menu_module" ]
} }
js_library("settings_idle_load.m") { js_library("settings_idle_load") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/controls/settings_idle_load.m.js" ]
deps = [ deps = [
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:assert.m", "//ui/webui/resources/js:assert.m",
] ]
extra_deps = [ ":settings_idle_load_module" ]
} }
js_library("settings_radio_group.m") { js_library("settings_radio_group.m") {
...@@ -287,7 +279,6 @@ group("polymer3_elements") { ...@@ -287,7 +279,6 @@ group("polymer3_elements") {
":modulize", ":modulize",
":password_prompt_dialog_module", ":password_prompt_dialog_module",
":settings_dropdown_menu_module", ":settings_dropdown_menu_module",
":settings_idle_load_module",
":settings_radio_group_module", ":settings_radio_group_module",
":settings_slider_module", ":settings_slider_module",
":settings_textarea_module", ":settings_textarea_module",
...@@ -350,20 +341,6 @@ polymer_modulizer("settings_dropdown_menu") { ...@@ -350,20 +341,6 @@ polymer_modulizer("settings_dropdown_menu") {
namespace_rewrites = settings_namespace_rewrites namespace_rewrites = settings_namespace_rewrites
} }
polymer_modulizer("settings_idle_load") {
js_file = "settings_idle_load.js"
html_file = "settings_idle_load.html"
html_type = "dom-module"
migrated_imports = settings_migrated_imports
auto_imports = [
"chrome/browser/resources/settings/ensure_lazy_loaded.html|ensureLazyLoaded",
"ui/webui/resources/html/assert.html|assert",
"ui/webui/resources/html/polymer.html|Polymer,html,templatize,TemplateInstanceBase",
]
namespace_rewrites = settings_namespace_rewrites +
[ "Polymer.Templatize.templatize|templatize" ]
}
polymer_modulizer("settings_radio_group") { polymer_modulizer("settings_radio_group") {
js_file = "settings_radio_group.js" js_file = "settings_radio_group.js"
html_file = "settings_radio_group.html" html_file = "settings_radio_group.html"
......
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="../ensure_lazy_loaded.html">
<dom-module id="settings-idle-load">
<template>
<slot></slot>
</template>
<script src="settings_idle_load.js"></script>
</dom-module>
...@@ -10,9 +10,16 @@ ...@@ -10,9 +10,16 @@
* loading and rendering of elements that are accessed imperatively. A URL is * loading and rendering of elements that are accessed imperatively. A URL is
* given that holds the elements to be loaded lazily. * given that holds the elements to be loaded lazily.
*/ */
import {assert} from '//resources/js/assert.m.js';
import {html, Polymer, TemplateInstanceBase, templatize} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {ensureLazyLoaded} from '../ensure_lazy_loaded.js';
Polymer({ Polymer({
is: 'settings-idle-load', is: 'settings-idle-load',
_template: html`<slot></slot>`,
properties: { properties: {
/** /**
* If specified, it will be loaded via an HTML import before stamping the * If specified, it will be loaded via an HTML import before stamping the
...@@ -44,16 +51,15 @@ Polymer({ ...@@ -44,16 +51,15 @@ Polymer({
}, },
/** /**
* @param {!function():!Promise} requestFn Requests the lazy module.
* @return {!Promise<!Element>} Resolves with the stamped child element after * @return {!Promise<!Element>} Resolves with the stamped child element after
* the lazy module has been loaded. * the lazy module has been loaded.
*/ */
requestLazyModule_(requestFn) { requestLazyModule_() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
requestFn().then(() => { ensureLazyLoaded().then(() => {
const template = const template =
/** @type {!HTMLTemplateElement} */ (this.getContentChildren()[0]); /** @type {!HTMLTemplateElement} */ (this.getContentChildren()[0]);
const TemplateClass = Polymer.Templatize.templatize(template, this, { const TemplateClass = templatize(template, this, {
mutableData: false, mutableData: false,
forwardHostProp: this._forwardHostPropV2, forwardHostProp: this._forwardHostPropV2,
}); });
...@@ -80,19 +86,7 @@ Polymer({ ...@@ -80,19 +86,7 @@ Polymer({
return this.loading_; return this.loading_;
} }
// clang-format off this.loading_ = this.requestLazyModule_();
// Polymer 2 codepath
/* #ignore */ const requestLazyModuleFn = () => {
/* #ignore */ return new Promise((resolve, reject) => {
/* #ignore */ this.importHref(this.url, resolve, reject, true);
/* #ignore */ });
/* #ignore */ };
// clang-format on
// Polymer 3 codepath, do not delete next line comment.
// #polymer3 const requestLazyModuleFn = ensureLazyLoaded;
this.loading_ = this.requestLazyModule_(requestLazyModuleFn);
return this.loading_; return this.loading_;
}, },
......
...@@ -250,9 +250,8 @@ ...@@ -250,9 +250,8 @@
file="${root_gen_dir}/chrome/browser/resources/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" use_base_dir="false"
compress="false" type="BINDATA" /> compress="false" type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_SETTINGS_IDLE_LOAD_M_JS" <include name="IDR_SETTINGS_CONTROLS_SETTINGS_IDLE_LOAD_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_idle_load.m.js" file="controls/settings_idle_load.js"
use_base_dir="false"
compress="false" type="BINDATA" /> compress="false" type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_PREF_CONTROL_BEHAVIOR_M_JS" <include name="IDR_SETTINGS_CONTROLS_PREF_CONTROL_BEHAVIOR_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/pref_control_behavior.m.js" file="${root_gen_dir}/chrome/browser/resources/settings/controls/pref_control_behavior.m.js"
......
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