Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3318)

Unified Diff: chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js

Issue 2502773003: ChromeOS OOBE: switch from iron-dropdown to <select>. (Closed)
Patch Set: Fix polymer load order Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js
diff --git a/chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js b/chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js
index 0d3d1c7ab2f8c7e7bee5969e6297c92efa906882..95cab000faae3f9b7faa4a098dccffcf9e1ec70f 100644
--- a/chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js
+++ b/chrome/browser/resources/chromeos/login/oobe_i18n_dropdown.js
@@ -37,61 +37,28 @@ Polymer({
},
/**
- * This flag prevents recursive calls of observers and callbacks.
+ * Mapping from item id to item.
+ * @type {!Map<string,I18nMenuItem>}
*/
- observersDisabled_: false,
+ idToItem_: null,
/**
- * @param {!{detail: !{item: { item: {!I18nMenuItem}}}}} event
+ * @param {string} value Option value.
* @private
*/
- onSelect_: function(event) {
- if (this.observersDisabled_)
- return;
-
- var selectedModel = this.$.domRepeat.modelForElement(event.detail.item);
- if (!selectedModel.item)
- return;
-
- selectedModel.set('item.selected', true);
- this.fire('select-item', selectedModel.item);
- },
-
- onDeselect_: function(event) {
- if (this.observersDisabled_)
- return;
-
- var deSelectedModel = this.$.domRepeat.modelForElement(event.detail.item);
- if (!deSelectedModel.item)
- return;
-
- deSelectedModel.set('item.selected', false);
+ onSelected_: function(value) {
+ this.fire('select-item', this.idToItem_.get(value));
},
onItemsChanged_: function(items) {
- if (this.observersDisabled_)
- return;
-
- if (!items)
- return;
-
- this.observersDisabled_ = true;
-
- var index = items.findIndex(function(item) { return item.selected; });
- if (index != -1) {
- // This is needed for selectIndex() to pick up values from updated
- // this.items (for example, translated into other language).
- Polymer.dom.flush();
-
- if (this.$.listboxDropdown.selected == index) {
- // This is to force update real <input> element value even if selection
- // index has not changed.
- this.$.listboxDropdown.selectIndex(null);
- }
- this.$.listboxDropdown.selectIndex(index);
+ this.idToItem_ = new Map();
+ for (var i = 0; i < items.length; ++i) {
+ var item = items[i];
+ this.idToItem_.set(item.value, item);
}
-
- this.observersDisabled_ = false;
+ Oobe.setupSelect(this.$.select,
+ items,
+ this.onSelected_.bind(this));
},
});
})();

Powered by Google App Engine
This is Rietveld 408576698