Index: chrome/browser/resources/options/pref_ui.js |
diff --git a/chrome/browser/resources/options/pref_ui.js b/chrome/browser/resources/options/pref_ui.js |
index c59cf030853af6e451796569f3f09cb8750771f3..6fcfd895bfa852058f180487ccd3a9fe3e3c855f 100644 |
--- a/chrome/browser/resources/options/pref_ui.js |
+++ b/chrome/browser/resources/options/pref_ui.js |
@@ -27,7 +27,11 @@ cr.define('options', function() { |
function(event) { |
var value = event.value && event.value['value'] != undefined ? |
event.value['value'] : event.value; |
- self.checked = Boolean(value); |
+ // Invert pref value if inverted_pref == true. |
+ if (self.inverted_pref) |
+ self.checked = !Boolean(value); |
+ else |
+ self.checked = Boolean(value); |
self.managed = event.value && event.value['managed'] != undefined ? |
event.value['managed'] : false; |
self.disabled = self.managed; |
@@ -41,14 +45,15 @@ cr.define('options', function() { |
// Listen to user events. |
this.addEventListener('click', |
function(e) { |
+ var value = self.inverted_pref ? !self.checked : self.checked; |
switch(self.valueType) { |
case 'number': |
Preferences.setIntegerPref(self.pref, |
- Number(self.checked), self.metric); |
+ Number(value), self.metric); |
break; |
case 'boolean': |
Preferences.setBooleanPref(self.pref, |
- self.checked, self.metric); |
+ value, self.metric); |
break; |
} |
}); |
@@ -81,6 +86,12 @@ cr.define('options', function() { |
*/ |
cr.defineProperty(PrefCheckbox, 'metric', cr.PropertyKind.ATTR); |
+ /** |
+ * Whether to use inverted pref value. |
+ * @type {boolean} |
+ */ |
+ cr.defineProperty(PrefCheckbox, 'inverted_pref', cr.PropertyKind.BOOL_ATTR); |
+ |
///////////////////////////////////////////////////////////////////////////// |
// PrefRadio class: |