Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: chrome/browser/prefs/pref_value_store.cc

Issue 6905044: Refactor preference syncing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really fix. And rebase Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prefs/pref_value_store.h ('k') | chrome/browser/prefs/pref_value_store_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 {
« no previous file with comments | « chrome/browser/prefs/pref_value_store.h ('k') | chrome/browser/prefs/pref_value_store_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698