Index: chrome/browser/prefs/pref_value_store.h |
diff --git a/chrome/browser/prefs/pref_value_store.h b/chrome/browser/prefs/pref_value_store.h |
index 47fb58e4fbcc55ad346839f510b9d28794283a4e..404796ba8ab37ab092116348f057267b63a494a3 100644 |
--- a/chrome/browser/prefs/pref_value_store.h |
+++ b/chrome/browser/prefs/pref_value_store.h |
@@ -10,12 +10,12 @@ |
#include <vector> |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/gtest_prod_util.h" |
#include "base/memory/ref_counted.h" |
#include "base/prefs/pref_store.h" |
#include "base/values.h" |
-class PrefModelAssociator; |
class PrefNotifier; |
class PrefStore; |
@@ -28,6 +28,8 @@ class PrefStore; |
// be called on the UI thread. |
class PrefValueStore { |
public: |
+ typedef base::Callback<void(const std::string&)> PrefChangedCallback; |
+ |
// In decreasing order of precedence: |
// |managed_prefs| contains all preferences from mandatory policies. |
// |extension_prefs| contains preference values set by extensions. |
@@ -59,9 +61,11 @@ class PrefValueStore { |
PrefStore* default_prefs, |
PrefNotifier* pref_notifier); |
- // TODO(joi): Remove this completely; the part PrefModelAssociator |
- // needs can be handled simply as a PrefObserver. |
- void set_sync_associator(PrefModelAssociator* sync_associator); |
+ // A PrefValueStore can have exactly one callback that is directly |
+ // notified of preferences changing in the store. This does not |
+ // filter through the PrefNotifier mechanism, which may not forward |
+ // certain changes (e.g. unregistered prefs). |
+ void set_callback(const PrefChangedCallback& callback); |
// Gets the value for the given preference name that has the specified value |
// type. Values stored in a PrefStore that have the matching |name| but |
@@ -237,12 +241,10 @@ class PrefValueStore { |
// Keeps the PrefStore references in order of precedence. |
PrefStoreKeeper pref_stores_[PREF_STORE_TYPE_MAX + 1]; |
- // The associator for syncing preferences. |
- PrefModelAssociator* pref_sync_associator_; |
+ PrefChangedCallback pref_changed_callback_; |
- // Used for generating PREF_CHANGED and PREF_INITIALIZATION_COMPLETED |
- // notifications. This is a weak reference, since the notifier is owned by the |
- // corresponding PrefService. |
+ // Used for generating notifications. This is a weak reference, |
+ // since the notifier is owned by the corresponding PrefService. |
PrefNotifier* pref_notifier_; |
// A mapping of preference names to their registered types. |