Index: chrome/browser/prefs/pref_service.h |
diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h |
index f9d415f3ec3e9567b575c9bdedc0d1d0ce587b5a..29d06de10711463da7a34e29ff5280509d49f028 100644 |
--- a/chrome/browser/prefs/pref_service.h |
+++ b/chrome/browser/prefs/pref_service.h |
@@ -35,13 +35,8 @@ class ScopedUserPrefUpdateBase; |
class PrefService; |
-class PrefServiceDelegate { |
- public: |
- virtual void OnPrefsLoaded(PrefService* prefs, bool success) = 0; |
-}; |
- |
class PrefService : public base::NonThreadSafe, |
- public JsonPrefStore::Delegate { |
+ public PrefStore::Observer { |
public: |
// A helper class to store all the information associated with a preference. |
class Preference { |
@@ -120,26 +115,19 @@ class PrefService : public base::NonThreadSafe, |
DISALLOW_COPY_AND_ASSIGN(Preference); |
}; |
- // JsonPrefStore::Delegate implementaion. |
- virtual void OnPrefsRead(PersistentPrefStore::PrefReadError error, |
- bool no_dir); |
- |
// Factory method that creates a new instance of a PrefService with the |
// applicable PrefStores. The |pref_filename| points to the user preference |
// file. The |profile| is the one to which these preferences apply; it may be |
// NULL if we're dealing with the local state. This is the usual way to create |
// a new PrefService. |extension_pref_store| is used as the source for |
// extension-controlled preferences and may be NULL. The PrefService takes |
- // ownership of |extension_pref_store|. |
+ // ownership of |extension_pref_store|. If |async| is true, asynchronous |
+ // version is used. Notifies using PREF_INITIALIZATION_COMPLETED or |
+ // PREF_INITIALIZATION_FAILED in the end. |
static PrefService* CreatePrefService(const FilePath& pref_filename, |
PrefStore* extension_pref_store, |
- Profile* profile); |
- |
- // Same as above, but with async initialization. |
- static PrefService* CreatePrefServiceAsync(const FilePath& pref_filename, |
- PrefStore* extension_pref_store, |
- Profile* profile, |
- PrefServiceDelegate* delegate); |
+ Profile* profile, |
+ bool async); |
// Creates an incognito copy of the pref service that shares most pref stores |
// but uses a fresh non-persistent overlay for the user pref store and an |
@@ -260,8 +248,11 @@ class PrefService : public base::NonThreadSafe, |
PersistentPrefStore* user_prefs, |
PrefStore* recommended_platform_prefs, |
PrefStore* recommended_cloud_prefs, |
- DefaultPrefStore* default_store, |
- PrefServiceDelegate* delegate); |
+ DefaultPrefStore* default_store); |
+ |
+ // PrefStore::Observer implementation: |
+ virtual void OnPrefValueChanged(const std::string&) {} |
+ virtual void OnInitializationCompleted(); |
// The PrefNotifier handles registering and notifying preference observers. |
// It is created and owned by this PrefService. Subclasses may access it for |
@@ -318,8 +309,8 @@ class PrefService : public base::NonThreadSafe, |
void SetUserPrefValue(const char* path, Value* new_value); |
// Load preferences from storage, attempting to diagnose and handle errors. |
- // This should only be called from the constructor. |
- void InitFromStorage(); |
+ // This should only be called right after construction. |
+ void InitFromStorage(bool async); |
// Used to set the value of dictionary or list values in the user pref store. |
// This will create a dictionary or list if one does not exist in the user |
@@ -343,10 +334,6 @@ class PrefService : public base::NonThreadSafe, |
// of registered preferences are. |
mutable PreferenceSet prefs_; |
- // Holds delegator to be called after initialization, if async version |
- // is used. |
- PrefServiceDelegate* delegate_; |
- |
DISALLOW_COPY_AND_ASSIGN(PrefService); |
}; |