Index: chrome/browser/resources/chromeos/login/oobe.js |
diff --git a/chrome/browser/resources/chromeos/login/oobe.js b/chrome/browser/resources/chromeos/login/oobe.js |
index db990d85a74634adfa513b850a04dd1aff4cb633..3cbc2a5056b29beaf251cfa5a78b910a9f317b30 100644 |
--- a/chrome/browser/resources/chromeos/login/oobe.js |
+++ b/chrome/browser/resources/chromeos/login/oobe.js |
@@ -16,18 +16,27 @@ cr.define('cr.ui.Oobe', function() { |
return { |
/** |
* Setups given "select" element using the list and adds callback. |
+ * Creates option groups if needed. |
* @param {!Element} select Select object to be updated. |
* @param {!Object} list List of the options to be added. |
+ * Elements with optionGroupName are considered option group. |
* @param {string} callback Callback name which should be send to Chrome or |
* an empty string if the event listener shouldn't be added. |
*/ |
setupSelect: function(select, list, callback) { |
- select.options.length = 0; |
+ select.innerHTML = ''; |
+ var optgroup = select; |
for (var i = 0; i < list.length; ++i) { |
var item = list[i]; |
- var option = |
- new Option(item.title, item.value, item.selected, item.selected); |
- select.appendChild(option); |
+ if (item.optionGroupName) { |
+ optgroup = document.createElement('optgroup'); |
+ optgroup.label = item.optionGroupName; |
+ select.appendChild(optgroup); |
+ } else { |
+ var option = |
+ new Option(item.title, item.value, item.selected, item.selected); |
+ optgroup.appendChild(option); |
+ } |
} |
if (callback) { |
var sendCallback = function() { |