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") {
":settings_boolean_control_behavior",
":settings_checkbox",
":settings_dropdown_menu",
":settings_idle_load",
":settings_radio_group",
":settings_slider",
":settings_textarea",
......@@ -88,6 +89,10 @@ js_library("settings_dropdown_menu") {
externs_list = [ "$externs_path/settings_private.js" ]
}
js_library("settings_idle_load") {
externs_list = [ "$externs_path/pending_polymer.js" ]
}
js_library("settings_radio_group") {
deps = [
":pref_control_behavior",
......
......@@ -11,8 +11,6 @@
Polymer({
is: 'settings-idle-load',
behaviors: [Polymer.Templatizer],
properties: {
/**
* If specified, it will be loaded via an HTML import before stamping the
......@@ -32,7 +30,9 @@ Polymer({
/** @override */
attached() {
this.idleCallback_ = requestIdleCallback(this.get.bind(this));
this.idleCallback_ = requestIdleCallback(() => {
this.get();
});
},
/** @override */
......@@ -52,11 +52,14 @@ Polymer({
this.loading_ = new Promise((resolve, reject) => {
this.importHref(this.url, () => {
assert(!this.ctor);
this.templatize(this.getContentChildren()[0]);
assert(this.ctor);
this.instance_ = this.stamp({});
const template =
/** @type {!HTMLTemplateElement} */ (this.getContentChildren()[0]);
const TemplateClass = Polymer.Templatize.templatize(template, this, {
mutableData: false,
forwardHostProp: this._forwardHostPropV2,
});
this.instance_ = new TemplateClass();
assert(!this.child_);
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