Index: chrome/browser/resources/options/chromeos/internet_detail.js |
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.js b/chrome/browser/resources/options/chromeos/internet_detail.js |
index 30dff847d4180e424eec3f4ef643d70cf5f8e130..8d7ece84134fb7dd2068820421e3ca689f66ac99 100644 |
--- a/chrome/browser/resources/options/chromeos/internet_detail.js |
+++ b/chrome/browser/resources/options/chromeos/internet_detail.js |
@@ -975,7 +975,8 @@ cr.define('options.internet', function() { |
var inetServerHostname = $('inet-server-hostname'); |
inetServerHostname.value = data.serverHostname.value; |
inetServerHostname.resetHandler = function() { |
- inetServerHostname.value = data.serverHostname.default; |
+ OptionsPage.hideBubble(); |
+ inetServerHostname.value = data.serverHostname.recommendedValue; |
}; |
} else { |
OptionsPage.showTab($('internet-nav-tab')); |
@@ -991,22 +992,24 @@ cr.define('options.internet', function() { |
indicators = cr.doc.querySelectorAll( |
'#details-internet-page .controlled-setting-indicator'); |
for (var i = 0; i < indicators.length; i++) { |
- var dataProperty = indicators[i].getAttribute('data'); |
- if (dataProperty && data[dataProperty]) { |
- var controlledBy = data[dataProperty].controlledBy; |
- if (controlledBy) { |
- indicators[i].controlledBy = controlledBy; |
- var forElement = $(indicators[i].getAttribute('for')); |
- if (forElement) { |
- forElement.disabled = controlledBy != 'recommended'; |
- if (forElement.type == 'radio' && !forElement.checked) |
- indicators[i].hidden = true; |
- if (forElement.resetHandler) |
- indicators[i].resetHandler = forElement.resetHandler; |
- } |
- } else { |
- indicators[i].controlledBy = null; |
- } |
+ var propName = indicators[i].getAttribute('data'); |
+ if (!propName || !data[propName]) |
+ continue; |
+ var propData = data[propName]; |
+ // Create a synthetic pref change event decorated as |
+ // CoreOptionsHandler::CreateValueForPref() does. |
+ var event = new cr.Event(name); |
+ event.value = { |
+ value: propData.value, |
+ controlledBy: propData.controlledBy, |
+ recommendedValue: propData.recommendedValue, |
+ }; |
+ indicators[i].handlePrefChange(event); |
+ var forElement = $(indicators[i].getAttribute('for')); |
+ if (forElement) { |
+ forElement.disabled = propData.controlledBy == 'policy'; |
+ if (forElement.resetHandler) |
+ indicators[i].resetHandler = forElement.resetHandler; |
} |
} |