Commit 2c9a1519 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Settings Idle Load: Use templatize, add closure compiler target

- Use Polymer.Templatize instead of extending Templatizer behavior,
  since Templatizer behavior is now legacy/deprecated.
- Add a closure compiler target for settings idle load

This is in preparation for migrating settings idle load to Polymer 3

Bug: 1042558
Change-Id: I820f1a51aff09478277f3aae1ad1611fdc334a59
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2023472
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735746}
parent 5e7b192d
...@@ -14,6 +14,7 @@ js_type_check("closure_compile") { ...@@ -14,6 +14,7 @@ js_type_check("closure_compile") {
":settings_boolean_control_behavior", ":settings_boolean_control_behavior",
":settings_checkbox", ":settings_checkbox",
":settings_dropdown_menu", ":settings_dropdown_menu",
":settings_idle_load",
":settings_radio_group", ":settings_radio_group",
":settings_slider", ":settings_slider",
":settings_textarea", ":settings_textarea",
...@@ -88,6 +89,10 @@ js_library("settings_dropdown_menu") { ...@@ -88,6 +89,10 @@ js_library("settings_dropdown_menu") {
externs_list = [ "$externs_path/settings_private.js" ] externs_list = [ "$externs_path/settings_private.js" ]
} }
js_library("settings_idle_load") {
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",
......
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
Polymer({ Polymer({
is: 'settings-idle-load', is: 'settings-idle-load',
behaviors: [Polymer.Templatizer],
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
...@@ -32,7 +30,9 @@ Polymer({ ...@@ -32,7 +30,9 @@ Polymer({
/** @override */ /** @override */
attached() { attached() {
this.idleCallback_ = requestIdleCallback(this.get.bind(this)); this.idleCallback_ = requestIdleCallback(() => {
this.get();
});
}, },
/** @override */ /** @override */
...@@ -52,11 +52,14 @@ Polymer({ ...@@ -52,11 +52,14 @@ Polymer({
this.loading_ = new Promise((resolve, reject) => { this.loading_ = new Promise((resolve, reject) => {
this.importHref(this.url, () => { this.importHref(this.url, () => {
assert(!this.ctor); const template =
this.templatize(this.getContentChildren()[0]); /** @type {!HTMLTemplateElement} */ (this.getContentChildren()[0]);
assert(this.ctor); const TemplateClass = Polymer.Templatize.templatize(template, this, {
mutableData: false,
this.instance_ = this.stamp({}); forwardHostProp: this._forwardHostPropV2,
});
this.instance_ = new TemplateClass();
assert(!this.child_); assert(!this.child_);
this.child_ = this.instance_.root.firstElementChild; this.child_ = this.instance_.root.firstElementChild;
......
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