| Index: chrome/browser/resources/settings/checkbox/checkbox.js
|
| diff --git a/chrome/browser/resources/settings/checkbox/checkbox.js b/chrome/browser/resources/settings/checkbox/checkbox.js
|
| index 6e0860cf00b7b85554b4f9d0faabd3654c8daf14..40d9fde0632ede8fe6e5bf8171671c083dfc4bcf 100644
|
| --- a/chrome/browser/resources/settings/checkbox/checkbox.js
|
| +++ b/chrome/browser/resources/settings/checkbox/checkbox.js
|
| @@ -23,7 +23,18 @@ Polymer({
|
| */
|
| pref: {
|
| type: Object,
|
| - notify: true,
|
| + notify: true
|
| + },
|
| +
|
| + inverted: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + checked: {
|
| + type: Boolean,
|
| + value: false,
|
| + observer: 'checkedChanged_'
|
| },
|
|
|
| label: {
|
| @@ -37,8 +48,32 @@ Polymer({
|
| },
|
| },
|
|
|
| + observers: [
|
| + 'prefValueChanged_(pref.value)'
|
| + ],
|
| +
|
| /** @override */
|
| ready: function() {
|
| this.$.events.forward(this.$.checkbox, ['change']);
|
| },
|
| +
|
| + /** @private */
|
| + prefValueChanged_: function(prefValue) {
|
| + // prefValue is initially undefined when Polymer initializes pref.
|
| + if (prefValue !== undefined) {
|
| + this.checked = this.getNewValue_(prefValue);
|
| + }
|
| + },
|
| +
|
| + /** @private */
|
| + checkedChanged_: function() {
|
| + if (this.pref) {
|
| + this.pref.value = this.getNewValue_(this.checked);
|
| + }
|
| + },
|
| +
|
| + /** @private */
|
| + getNewValue_: function(val) {
|
| + return this.inverted ? !val : val;
|
| + }
|
| });
|
|
|