| Index: chrome/browser/prefs/pref_value_store.cc
|
| diff --git a/chrome/browser/prefs/pref_value_store.cc b/chrome/browser/prefs/pref_value_store.cc
|
| index 3318a1dd428100eca21c468bc47d173af991120b..dbb29aebdf4b15f0e761ab3ff3fdfec5146fbb82 100644
|
| --- a/chrome/browser/prefs/pref_value_store.cc
|
| +++ b/chrome/browser/prefs/pref_value_store.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/prefs/pref_value_store.h"
|
|
|
| +#include "chrome/browser/prefs/pref_model_associator.h"
|
| #include "chrome/browser/prefs/pref_notifier.h"
|
|
|
| PrefValueStore::PrefStoreKeeper::PrefStoreKeeper()
|
| @@ -49,8 +50,10 @@ PrefValueStore::PrefValueStore(PrefStore* managed_platform_prefs,
|
| PrefStore* recommended_platform_prefs,
|
| PrefStore* recommended_cloud_prefs,
|
| PrefStore* default_prefs,
|
| + PrefModelAssociator* pref_sync_associator,
|
| PrefNotifier* pref_notifier)
|
| - : pref_notifier_(pref_notifier) {
|
| + : pref_sync_associator_(pref_sync_associator),
|
| + pref_notifier_(pref_notifier) {
|
| InitPrefStore(MANAGED_PLATFORM_STORE, managed_platform_prefs);
|
| InitPrefStore(MANAGED_CLOUD_STORE, managed_cloud_prefs);
|
| InitPrefStore(EXTENSION_STORE, extension_prefs);
|
| @@ -74,6 +77,7 @@ PrefValueStore* PrefValueStore::CloneAndSpecialize(
|
| PrefStore* recommended_platform_prefs,
|
| PrefStore* recommended_cloud_prefs,
|
| PrefStore* default_prefs,
|
| + PrefModelAssociator* pref_sync_associator,
|
| PrefNotifier* pref_notifier) {
|
| DCHECK(pref_notifier);
|
| if (!managed_platform_prefs)
|
| @@ -96,7 +100,7 @@ PrefValueStore* PrefValueStore::CloneAndSpecialize(
|
| return new PrefValueStore(
|
| managed_platform_prefs, managed_cloud_prefs, extension_prefs,
|
| command_line_prefs, user_prefs, recommended_platform_prefs,
|
| - recommended_cloud_prefs, default_prefs,
|
| + recommended_cloud_prefs, default_prefs, pref_sync_associator,
|
| pref_notifier);
|
| }
|
|
|
| @@ -129,8 +133,11 @@ void PrefValueStore::NotifyPrefChanged(
|
| // If the pref is controlled by a higher-priority store, its effective value
|
| // cannot have changed.
|
| PrefStoreType controller = ControllingPrefStoreForPref(path);
|
| - if (controller == INVALID_STORE || controller >= new_store)
|
| + if (controller == INVALID_STORE || controller >= new_store) {
|
| pref_notifier_->OnPreferenceChanged(path);
|
| + if (pref_sync_associator_)
|
| + pref_sync_associator_->ProcessPrefChange(path);
|
| + }
|
| }
|
|
|
| bool PrefValueStore::PrefValueInManagedStore(const char* name) const {
|
|
|