| Index: chrome/browser/prefs/pref_service.h
|
| diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h
|
| index 18266bc6bee386d5451787b75b8a5c861618728b..18c70ed74acf05846ccfcf9aed4742ca7337b490 100644
|
| --- a/chrome/browser/prefs/pref_service.h
|
| +++ b/chrome/browser/prefs/pref_service.h
|
| @@ -17,15 +17,17 @@
|
| #include "base/values.h"
|
| #include "chrome/common/pref_store.h"
|
|
|
| +class DefaultPrefStore;
|
| class FilePath;
|
| class NotificationObserver;
|
| class PrefChangeObserver;
|
| class PrefNotifier;
|
| +class PrefNotifierImpl;
|
| class PrefValueStore;
|
| class Profile;
|
|
|
| namespace subtle {
|
| - class PrefMemberBase;
|
| +class PrefMemberBase;
|
| };
|
|
|
| class PrefService : public NonThreadSafe {
|
| @@ -95,11 +97,11 @@ class PrefService : public NonThreadSafe {
|
| DISALLOW_COPY_AND_ASSIGN(Preference);
|
| };
|
|
|
| - // Factory method that creates a new instance of a PrefService with
|
| - // a PrefValueStore containing all platform-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.
|
| + // 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.
|
| static PrefService* CreatePrefService(const FilePath& pref_filename,
|
| Profile* profile);
|
|
|
| @@ -109,10 +111,6 @@ class PrefService : public NonThreadSafe {
|
| // other types of preferences).
|
| static PrefService* CreateUserPrefService(const FilePath& pref_filename);
|
|
|
| - // This constructor is primarily used by tests. The |pref_value_store|
|
| - // provides preference values.
|
| - explicit PrefService(PrefValueStore* pref_value_store);
|
| -
|
| virtual ~PrefService();
|
|
|
| // Reloads the data from file. This should only be called when the importer
|
| @@ -221,19 +219,33 @@ class PrefService : public NonThreadSafe {
|
|
|
| bool ReadOnly() const;
|
|
|
| - PrefNotifier* pref_notifier() const { return pref_notifier_.get(); }
|
| -
|
| - PrefValueStore* pref_value_store() const { return pref_value_store_.get(); }
|
| + // TODO(mnissler): This should not be public. Change client code to call a
|
| + // preference setter or use ScopedPrefUpdate.
|
| + PrefNotifier* pref_notifier() const;
|
|
|
| - PrefStore* GetExtensionPrefStore() const;
|
| + // Get the extension PrefStore.
|
| + PrefStore* GetExtensionPrefStore();
|
|
|
| protected:
|
| + // Construct a new pref service, specifying the pref sources as explicit
|
| + // PrefStore pointers. This constructor is what CreatePrefService() ends up
|
| + // calling. It's also used for unit tests.
|
| + PrefService(PrefStore* managed_platform_prefs,
|
| + PrefStore* device_management_prefs,
|
| + PrefStore* extension_prefs,
|
| + PrefStore* command_line_prefs,
|
| + PrefStore* user_prefs,
|
| + PrefStore* recommended_prefs,
|
| + Profile* profile);
|
| +
|
| // The PrefNotifier handles registering and notifying preference observers.
|
| // It is created and owned by this PrefService. Subclasses may access it for
|
| // unit testing.
|
| - scoped_ptr<PrefNotifier> pref_notifier_;
|
| + scoped_ptr<PrefNotifierImpl> pref_notifier_;
|
|
|
| private:
|
| + friend class TestingPrefService;
|
| +
|
| // Registration of pref change observers must be done using the
|
| // PrefChangeRegistrar, which is declared as a friend here to grant it
|
| // access to the otherwise protected members Add/RemovePrefObserver.
|
| @@ -273,6 +285,12 @@ class PrefService : public NonThreadSafe {
|
| // and owned by this PrefService. Subclasses may access it for unit testing.
|
| scoped_refptr<PrefValueStore> pref_value_store_;
|
|
|
| + // The extension pref store registered with the PrefValueStore.
|
| + PrefStore* extension_store_;
|
| +
|
| + // Points to the default pref store we passed to the PrefValueStore.
|
| + PrefStore* default_store_;
|
| +
|
| // A set of all the registered Preference objects.
|
| PreferenceSet prefs_;
|
|
|
|
|