| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This provides a way to access the application's current preferences. | 5 // This provides a way to access the application's current preferences. |
| 6 | 6 |
| 7 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 7 #ifndef CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
| 8 #define CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 8 #define CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
| 9 #pragma once | 9 #pragma once |
| 10 | 10 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 static PrefService* CreatePrefService(const FilePath& pref_filename, | 136 static PrefService* CreatePrefService(const FilePath& pref_filename, |
| 137 PrefStore* extension_pref_store, | 137 PrefStore* extension_pref_store, |
| 138 bool async); | 138 bool async); |
| 139 | 139 |
| 140 // Creates an incognito copy of the pref service that shares most pref stores | 140 // Creates an incognito copy of the pref service that shares most pref stores |
| 141 // but uses a fresh non-persistent overlay for the user pref store and an | 141 // but uses a fresh non-persistent overlay for the user pref store and an |
| 142 // individual extension pref store (to cache the effective extension prefs for | 142 // individual extension pref store (to cache the effective extension prefs for |
| 143 // incognito windows). | 143 // incognito windows). |
| 144 PrefService* CreateIncognitoPrefService(PrefStore* incognito_extension_prefs); | 144 PrefService* CreateIncognitoPrefService(PrefStore* incognito_extension_prefs); |
| 145 | 145 |
| 146 // Creates a per-TabContents pref service derived from this PrefService. The |
| 147 // new PrefService will share all PrefStores with the base PrefService, except |
| 148 // for user prefs. Also, it manages a separate set of registered prefs. |
| 149 PrefService* CreateTabContentsPrefService(); |
| 150 |
| 146 virtual ~PrefService(); | 151 virtual ~PrefService(); |
| 147 | 152 |
| 148 // Reloads the data from file. This should only be called when the importer | 153 // Reloads the data from file. This should only be called when the importer |
| 149 // is running during first run, and the main process may not change pref | 154 // is running during first run, and the main process may not change pref |
| 150 // values while the importer process is running. Returns true on success. | 155 // values while the importer process is running. Returns true on success. |
| 151 bool ReloadPersistentPrefs(); | 156 bool ReloadPersistentPrefs(); |
| 152 | 157 |
| 153 // Returns true if the preference for the given preference name is available | 158 // Returns true if the preference for the given preference name is available |
| 154 // and is managed. | 159 // and is managed. |
| 155 bool IsManagedPreference(const char* pref_name) const; | 160 bool IsManagedPreference(const char* pref_name) const; |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 // preference is not registered. | 292 // preference is not registered. |
| 288 const Preference* FindPreference(const char* pref_name) const; | 293 const Preference* FindPreference(const char* pref_name) const; |
| 289 | 294 |
| 290 bool ReadOnly() const; | 295 bool ReadOnly() const; |
| 291 | 296 |
| 292 // SyncableService getter. | 297 // SyncableService getter. |
| 293 // TODO(zea): Have PrefService implement SyncableService directly. | 298 // TODO(zea): Have PrefService implement SyncableService directly. |
| 294 SyncableService* GetSyncableService(); | 299 SyncableService* GetSyncableService(); |
| 295 | 300 |
| 296 protected: | 301 protected: |
| 297 // Construct a new pref service, specifying the pref sources as explicit | 302 // Construct a new pref service. This constructor is what CreatePrefService() |
| 298 // PrefStore pointers. This constructor is what CreatePrefService() ends up | 303 // ends up calling. It's also used for unit tests. |
| 299 // calling. It's also used for unit tests. | 304 PrefService(PrefValueStore* pref_value_store, |
| 300 PrefService(PrefStore* managed_platform_prefs, | |
| 301 PrefStore* managed_cloud_prefs, | |
| 302 PrefStore* extension_prefs, | |
| 303 PrefStore* command_line_prefs, | |
| 304 PersistentPrefStore* user_prefs, | 305 PersistentPrefStore* user_prefs, |
| 305 PrefStore* recommended_platform_prefs, | |
| 306 PrefStore* recommended_cloud_prefs, | |
| 307 DefaultPrefStore* default_store, | 306 DefaultPrefStore* default_store, |
| 307 PrefNotifierImpl* pref_notifier, |
| 308 bool async); | 308 bool async); |
| 309 | 309 |
| 310 // The PrefNotifier handles registering and notifying preference observers. | 310 // The PrefNotifier handles registering and notifying preference observers. |
| 311 // It is created and owned by this PrefService. Subclasses may access it for | 311 // It is created and owned by this PrefService. Subclasses may access it for |
| 312 // unit testing. | 312 // unit testing. |
| 313 scoped_ptr<PrefNotifierImpl> pref_notifier_; | 313 scoped_ptr<PrefNotifierImpl> pref_notifier_; |
| 314 | 314 |
| 315 private: | 315 private: |
| 316 class PreferencePathComparator { | 316 class PreferencePathComparator { |
| 317 public: | 317 public: |
| (...skipping 10 matching lines...) Expand all Loading... |
| 328 // access to the otherwise protected members Add/RemovePrefObserver. | 328 // access to the otherwise protected members Add/RemovePrefObserver. |
| 329 // PrefMember registers for preferences changes notification directly to | 329 // PrefMember registers for preferences changes notification directly to |
| 330 // avoid the storage overhead of the registrar, so its base class must be | 330 // avoid the storage overhead of the registrar, so its base class must be |
| 331 // declared as a friend, too. | 331 // declared as a friend, too. |
| 332 friend class PrefChangeRegistrar; | 332 friend class PrefChangeRegistrar; |
| 333 friend class subtle::PrefMemberBase; | 333 friend class subtle::PrefMemberBase; |
| 334 | 334 |
| 335 // Give access to ReportUserPrefChanged() and GetMutableUserPref(). | 335 // Give access to ReportUserPrefChanged() and GetMutableUserPref(). |
| 336 friend class subtle::ScopedUserPrefUpdateBase; | 336 friend class subtle::ScopedUserPrefUpdateBase; |
| 337 | 337 |
| 338 // Construct an incognito version of the pref service. Use | |
| 339 // CreateIncognitoPrefService() instead of calling this constructor directly. | |
| 340 PrefService(const PrefService& original, | |
| 341 PrefStore* incognito_extension_prefs); | |
| 342 | |
| 343 // Sends notification of a changed preference. This needs to be called by | 338 // Sends notification of a changed preference. This needs to be called by |
| 344 // a ScopedUserPrefUpdate if a DictionaryValue or ListValue is changed. | 339 // a ScopedUserPrefUpdate if a DictionaryValue or ListValue is changed. |
| 345 void ReportUserPrefChanged(const std::string& key); | 340 void ReportUserPrefChanged(const std::string& key); |
| 346 | 341 |
| 347 // If the pref at the given path changes, we call the observer's Observe | 342 // If the pref at the given path changes, we call the observer's Observe |
| 348 // method with PREF_CHANGED. Note that observers should not call these methods | 343 // method with PREF_CHANGED. Note that observers should not call these methods |
| 349 // directly but rather use a PrefChangeRegistrar to make sure the observer | 344 // directly but rather use a PrefChangeRegistrar to make sure the observer |
| 350 // gets cleaned up properly. | 345 // gets cleaned up properly. |
| 351 virtual void AddPrefObserver(const char* path, NotificationObserver* obs); | 346 virtual void AddPrefObserver(const char* path, NotificationObserver* obs); |
| 352 virtual void RemovePrefObserver(const char* path, NotificationObserver* obs); | 347 virtual void RemovePrefObserver(const char* path, NotificationObserver* obs); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 // of registered preferences are. | 385 // of registered preferences are. |
| 391 mutable PreferenceSet prefs_; | 386 mutable PreferenceSet prefs_; |
| 392 | 387 |
| 393 // The model associator that maintains the links with the sync db. | 388 // The model associator that maintains the links with the sync db. |
| 394 scoped_ptr<PrefModelAssociator> pref_sync_associator_; | 389 scoped_ptr<PrefModelAssociator> pref_sync_associator_; |
| 395 | 390 |
| 396 DISALLOW_COPY_AND_ASSIGN(PrefService); | 391 DISALLOW_COPY_AND_ASSIGN(PrefService); |
| 397 }; | 392 }; |
| 398 | 393 |
| 399 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_ | 394 #endif // CHROME_BROWSER_PREFS_PREF_SERVICE_H_ |
| OLD | NEW |