| Index: chrome/browser/prefs/pref_service.h
|
| diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h
|
| index 0bc7f77aa8e83a404a5ad15a0db2e2143adfa7b8..0d11873458a5d51c8cf80d3448846c31792941e4 100644
|
| --- a/chrome/browser/prefs/pref_service.h
|
| +++ b/chrome/browser/prefs/pref_service.h
|
| @@ -15,20 +15,20 @@
|
| #include <string>
|
|
|
| #include "base/callback.h"
|
| +#include "base/hash_tables.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "base/hash_tables.h"
|
| #include "base/observer_list.h"
|
| #include "base/prefs/persistent_pref_store.h"
|
| #include "base/prefs/public/pref_service_base.h"
|
| #include "base/threading/non_thread_safe.h"
|
|
|
| -class DefaultPrefStore;
|
| class PrefNotifier;
|
| class PrefNotifierImpl;
|
| class PrefObserver;
|
| -class PrefStore;
|
| +class PrefRegistry;
|
| class PrefValueStore;
|
| +class PrefStore;
|
|
|
| namespace subtle {
|
| class ScopedUserPrefUpdateBase;
|
| @@ -36,7 +36,7 @@ class ScopedUserPrefUpdateBase;
|
|
|
| // Base class for PrefServices. You can use the base class to read and
|
| // interact with preferences, but not to register new preferences; for
|
| -// that see subclasses like PrefServiceSimple.
|
| +// that see e.g. PrefRegistrySimple.
|
| class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| public:
|
| enum PrefInitializationStatus {
|
| @@ -94,7 +94,7 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| PrefNotifierImpl* pref_notifier,
|
| PrefValueStore* pref_value_store,
|
| PersistentPrefStore* user_prefs,
|
| - DefaultPrefStore* default_store,
|
| + PrefRegistry* pref_registry,
|
| base::Callback<void(PersistentPrefStore::PrefReadError)>
|
| read_error_callback,
|
| bool async);
|
| @@ -112,7 +112,6 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // PrefServiceBase implementation.
|
| virtual bool IsManagedPreference(const char* pref_name) const OVERRIDE;
|
| virtual bool IsUserModifiablePreference(const char* pref_name) const OVERRIDE;
|
| - virtual void UnregisterPreference(const char* path) OVERRIDE;
|
| virtual const PrefService::Preference* FindPreference(
|
| const char* path) const OVERRIDE;
|
| virtual bool GetBoolean(const char* path) const OVERRIDE;
|
| @@ -167,12 +166,24 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // false for unsuccessful.
|
| void AddPrefInitObserver(base::Callback<void(bool)> callback);
|
|
|
| + // Returns the PrefRegistry object for this service. You should not
|
| + // use this; the intent is for no registrations to take place after
|
| + // PrefService has been constructed.
|
| + PrefRegistry* DeprecatedGetPrefRegistry();
|
| +
|
| protected:
|
| - // Registers a new preference at |path|. The |default_value| must not be
|
| - // NULL as it determines the preference value's type.
|
| - // RegisterPreference must not be called twice for the same path.
|
| - // This method takes ownership of |default_value|.
|
| - void RegisterPreference(const char* path, base::Value* default_value);
|
| + // Adds the registered preferences from the PrefRegistry instance
|
| + // passed to us at construction time.
|
| + void AddInitialPreferences();
|
| +
|
| + // Updates local caches for a preference registered at |path|. The
|
| + // |default_value| must not be NULL as it determines the preference
|
| + // value's type. AddRegisteredPreference must not be called twice
|
| + // for the same path.
|
| + void AddRegisteredPreference(const char* path,
|
| + base::Value* default_value);
|
| +
|
| + void RemoveRegisteredPreference(const char* path);
|
|
|
| // The PrefNotifier handles registering and notifying preference observers.
|
| // It is created and owned by this PrefService. Subclasses may access it for
|
| @@ -183,9 +194,10 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // this PrefService. Subclasses may access it for unit testing.
|
| scoped_ptr<PrefValueStore> pref_value_store_;
|
|
|
| + scoped_refptr<PrefRegistry> pref_registry_;
|
| +
|
| // Pref Stores and profile that we passed to the PrefValueStore.
|
| scoped_refptr<PersistentPrefStore> user_pref_store_;
|
| - scoped_refptr<DefaultPrefStore> default_store_;
|
|
|
| // Callback to call when a read error occurs.
|
| base::Callback<void(PersistentPrefStore::PrefReadError)> read_error_callback_;
|
| @@ -197,9 +209,6 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // vs. std::map, and by roughly 180ms vs. std::set of Preference pointers.
|
| typedef base::hash_map<std::string, Preference> PreferenceMap;
|
|
|
| - // Give access to Initialize().
|
| - friend class PrefServiceBuilder;
|
| -
|
| // Give access to ReportUserPrefChanged() and GetMutableUserPref().
|
| friend class subtle::ScopedUserPrefUpdateBase;
|
|
|
| @@ -238,7 +247,7 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // actually get the value.).
|
| const base::Value* GetPreferenceValue(const std::string& path) const;
|
|
|
| - // Local cache of registered Preference objects. The default_store_
|
| + // Local cache of registered Preference objects. The pref_registry_
|
| // is authoritative with respect to what the types and default values
|
| // of registered preferences are.
|
| mutable PreferenceMap prefs_map_;
|
| @@ -249,7 +258,6 @@ class PrefService : public PrefServiceBase, public base::NonThreadSafe {
|
| // TODO(joi): Remove these forwards. They were placed here temporarily
|
| // to limit the size of the initial change that split
|
| // PrefServiceSimple and PrefServiceSyncable out of PrefService.
|
| -#include "chrome/browser/prefs/pref_service_simple.h"
|
| #include "chrome/browser/prefs/pref_service_syncable.h"
|
|
|
| #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_
|
|
|