Index: chrome/browser/prefs/pref_service.h |
diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h |
index c855ef1f33664d65ee908f17b4e140c98852ff6e..1536b9530642b6bc0db09433f8474f451439b2f1 100644 |
--- a/chrome/browser/prefs/pref_service.h |
+++ b/chrome/browser/prefs/pref_service.h |
@@ -14,6 +14,7 @@ |
#include <set> |
#include <string> |
+#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/hash_tables.h" |
@@ -27,6 +28,7 @@ class PersistentPrefStore; |
class PrefModelAssociator; |
class PrefNotifier; |
class PrefNotifierImpl; |
+class PrefObserver; |
class PrefServiceObserver; |
class PrefStore; |
class PrefValueStore; |
@@ -277,6 +279,11 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe { |
// Do not call this after having derived an incognito or per tab pref service. |
void UpdateCommandLinePrefStore(CommandLine* command_line); |
+ // We run the callback once, when initialization completes. The bool |
+ // parameter will be set to true for successful initialization, |
+ // false for unsuccessful. |
+ void AddPrefInitObserver(base::Callback<void(bool)> callback); |
+ |
protected: |
// Construct a new pref service. This constructor is what |
// factory methods end up calling and what is used for unit tests. |
@@ -306,9 +313,9 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe { |
// PrefServiceBase implementation (protected in base, private here). |
virtual void AddPrefObserver(const char* path, |
- content::NotificationObserver* obs) OVERRIDE; |
+ PrefObserver* obs) OVERRIDE; |
virtual void RemovePrefObserver(const char* path, |
- content::NotificationObserver* obs) OVERRIDE; |
+ PrefObserver* obs) OVERRIDE; |
// Sends notification of a changed preference. This needs to be called by |
// a ScopedUserPrefUpdate if a DictionaryValue or ListValue is changed. |