Index: chrome/browser/resources/options/browser_options.js |
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js |
index 2b63e80fc2d4970bc5dc83e69e9613109dd99ae9..15985e7b996e60ee2ecf981b1833785094aa8efc 100644 |
--- a/chrome/browser/resources/options/browser_options.js |
+++ b/chrome/browser/resources/options/browser_options.js |
@@ -118,6 +118,18 @@ cr.define('options', function() { |
systemTimezoneIsManaged_: false, |
/** |
+ * True if system timezone detection is managed by policy. |
+ * @private {boolean} |
+ */ |
+ systemTimezoneAutomaticDetectionIsManaged_: false, |
+ |
+ /** |
+ * This is the value of SystemTimezoneAutomaticDetection policy. |
+ * @private {boolean} |
Dan Beam
2016/04/02 01:39:14
0 isn't a {boolean}
Alexander Alekseev
2016/04/05 08:03:38
Done.
|
+ */ |
+ systemTimezoneAutomaticDetectionValue_: 0, |
+ |
+ /** |
* Cached bluetooth adapter state. |
* @private {?chrome.bluetooth.AdapterState} |
*/ |
@@ -1681,17 +1693,36 @@ cr.define('options', function() { |
* @private |
*/ |
updateTimezoneSectionState_: function() { |
+ var self = this; |
+ $('resolve-timezone-by-geolocation') |
+ .onclick = function(event) { |
+ self.resolveTimezoneByGeolocation_ = event.currentTarget.checked; |
+ }; |
if (this.systemTimezoneIsManaged_) { |
- $('resolve-timezone-by-geolocation-selection').disabled = true; |
- $('resolve-timezone-by-geolocation').onclick = function(event) {}; |
+ $('resolve-timezone-by-geolocation').disabled = true; |
+ $('resolve-timezone-by-geolocation').checked = false; |
+ } else if (this.systemTimezoneAutomaticDetectionIsManaged_) { |
+ if (this.systemTimezoneAutomaticDetectionValue_ == |
+ 0 /* USERS_DECIDE */) { |
Dan Beam
2016/04/02 01:39:14
can you just put an @enum {number} into this scrip
Alexander Alekseev
2016/04/05 08:03:38
Done.
|
+ $('resolve-timezone-by-geolocation').disabled = false; |
+ $('resolve-timezone-by-geolocation') |
+ .checked = this.resolveTimezoneByGeolocation_; |
+ $('timezone-value-select') |
+ .disabled = this.resolveTimezoneByGeolocation_; |
+ } else { |
+ $('resolve-timezone-by-geolocation').disabled = true; |
+ $('resolve-timezone-by-geolocation') |
+ .checked = |
+ (this.systemTimezoneAutomaticDetectionValue_ != 1 /* DISABLED */); |
+ $('timezone-value-select').disabled = true; |
+ } |
} else { |
this.enableElementIfPossible_( |
- getRequiredElement('resolve-timezone-by-geolocation-selection')); |
- $('resolve-timezone-by-geolocation').onclick = function(event) { |
- $('timezone-value-select').disabled = event.currentTarget.checked; |
- }; |
+ getRequiredElement('resolve-timezone-by-geolocation')); |
$('timezone-value-select').disabled = |
this.resolveTimezoneByGeolocation_; |
+ $('resolve-timezone-by-geolocation') |
+ .checked = this.resolveTimezoneByGeolocation_; |
} |
}, |
@@ -1707,6 +1738,18 @@ cr.define('options', function() { |
}, |
/** |
+ * This is called from chromium code when system timezone detection |
+ * "managed" state is changed. Enables or disables dependent settings. |
+ * @param {boolean} managed Is true when system timezone autodetection is |
+ * managed by enterprise policy. False otherwize. |
Dan Beam
2016/04/02 01:39:14
missing @param for value
Alexander Alekseev
2016/04/05 08:03:38
Done.
|
+ */ |
+ setSystemTimezoneAutomaticDetectionManaged_: function(managed, value) { |
+ this.systemTimezoneAutomaticDetectionIsManaged_ = managed; |
+ this.systemTimezoneAutomaticDetectionValue_ = value; |
+ this.updateTimezoneSectionState_(); |
+ }, |
+ |
+ /** |
* This is Preferences event listener, which is called when |
* kResolveTimezoneByGeolocation preference is changed. |
* Enables or disables dependent settings. |
@@ -2255,6 +2298,7 @@ cr.define('options', function() { |
'setProfilesInfo', |
'setSpokenFeedbackCheckboxState', |
'setSystemTimezoneManaged', |
+ 'setSystemTimezoneAutomaticDetectionManaged', |
'setThemesResetButtonEnabled', |
'setVirtualKeyboardCheckboxState', |
'setupPageZoomSelector', |