| Index: chrome/browser/resources/settings/prefs/prefs.js
|
| diff --git a/chrome/browser/resources/settings/prefs/prefs.js b/chrome/browser/resources/settings/prefs/prefs.js
|
| index 98c82f78b5c4543a20fc1dd601e5bfabe98b010c..e8d7d593c839e983f784e2fce28f6c9835911e1f 100644
|
| --- a/chrome/browser/resources/settings/prefs/prefs.js
|
| +++ b/chrome/browser/resources/settings/prefs/prefs.js
|
| @@ -107,13 +107,19 @@ function ListPrefWrapper(prefObj) {
|
| 'prefsChanged_(prefs.*)',
|
| ],
|
|
|
| + settingsApi_: chrome.settingsPrivate,
|
| +
|
| /** @override */
|
| created: function() {
|
| + // Set window.mockApi to pass a custom settings API, i.e. for tests.
|
| + // TODO(michaelpg): don't use a global.
|
| + if (window.mockApi)
|
| + this.settingsApi_ = window.mockApi;
|
| CrSettingsPrefs.isInitialized = false;
|
|
|
| - chrome.settingsPrivate.onPrefsChanged.addListener(
|
| + this.settingsApi_.onPrefsChanged.addListener(
|
| this.onSettingsPrivatePrefsChanged_.bind(this));
|
| - chrome.settingsPrivate.getAllPrefs(
|
| + this.settingsApi_.getAllPrefs(
|
| this.onSettingsPrivatePrefsFetched_.bind(this));
|
| },
|
|
|
| @@ -140,7 +146,7 @@ function ListPrefWrapper(prefObj) {
|
| if (prefWrapper.equals(this.createPrefWrapper_(prefObj)))
|
| return;
|
|
|
| - chrome.settingsPrivate.setPref(
|
| + this.settingsApi_.setPref(
|
| key,
|
| prefObj.value,
|
| /* pageId */ '',
|
| @@ -182,7 +188,7 @@ function ListPrefWrapper(prefObj) {
|
|
|
| // Get the current pref value from chrome.settingsPrivate to ensure the
|
| // UI stays up to date.
|
| - chrome.settingsPrivate.getPref(key, function(pref) {
|
| + this.settingsApi_.getPref(key, function(pref) {
|
| this.updatePrefs_([pref]);
|
| }.bind(this));
|
| },
|
| @@ -229,24 +235,18 @@ function ListPrefWrapper(prefObj) {
|
| },
|
|
|
| /**
|
| - * Sets or updates the pref denoted by newPrefObj.key in the publicy exposed
|
| - * |prefs| property.
|
| + * Sets or updates the pref denoted by newPrefObj.key in the publicly
|
| + * exposed |prefs| property.
|
| * @param {chrome.settingsPrivate.PrefObject} newPrefObj The pref object to
|
| * update the pref with.
|
| * @private
|
| */
|
| setPref_: function(newPrefObj) {
|
| - // Check if the pref exists already in the Polymer |prefs| object.
|
| - if (this.get(newPrefObj.key, this.prefs)) {
|
| - // Update just the value, notifying listeners of the change.
|
| - this.set('prefs.' + newPrefObj.key + '.value', newPrefObj.value);
|
| - } else {
|
| - // Add the pref to |prefs|. cr.exportPath doesn't use Polymer.Base.set,
|
| - // which is OK because the nested property update events aren't useful.
|
| - cr.exportPath(newPrefObj.key, newPrefObj, this.prefs);
|
| - // Notify listeners of the change at the preference key.
|
| - this.notifyPath('prefs.' + newPrefObj.key, newPrefObj);
|
| - }
|
| + // Add the pref to |prefs|. cr.exportPath doesn't use Polymer.Base.set,
|
| + // which is OK because the nested property update events aren't useful.
|
| + cr.exportPath(newPrefObj.key, newPrefObj, this.prefs);
|
| + // Notify listeners of the change at the preference key.
|
| + this.notifyPath('prefs.' + newPrefObj.key, newPrefObj);
|
| },
|
|
|
| /**
|
|
|