| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Chromium settings and storage represent user-selected preferences and | 7 // Chromium settings and storage represent user-selected preferences and |
| 8 // information and MUST not be extracted, overwritten or modified except | 8 // information and MUST not be extracted, overwritten or modified except |
| 9 // through Chromium defined APIs. | 9 // through Chromium defined APIs. |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 #include "base/prefs/base_prefs_export.h" | 23 #include "base/prefs/base_prefs_export.h" |
| 24 #include "base/prefs/persistent_pref_store.h" | 24 #include "base/prefs/persistent_pref_store.h" |
| 25 #include "base/threading/non_thread_safe.h" | 25 #include "base/threading/non_thread_safe.h" |
| 26 #include "base/values.h" | 26 #include "base/values.h" |
| 27 | 27 |
| 28 class PrefNotifier; | 28 class PrefNotifier; |
| 29 class PrefNotifierImpl; | 29 class PrefNotifierImpl; |
| 30 class PrefObserver; | 30 class PrefObserver; |
| 31 class PrefRegistry; | 31 class PrefRegistry; |
| 32 class PrefValueStore; | 32 class PrefValueStore; |
| 33 class PrefService; |
| 33 class PrefStore; | 34 class PrefStore; |
| 34 | 35 |
| 35 namespace base { | 36 namespace base { |
| 36 class FilePath; | 37 class FilePath; |
| 37 } | 38 } |
| 38 | 39 |
| 40 namespace chrome { |
| 41 void MigrateBrowserUIUserPrefs(PrefService* prefs); |
| 42 } |
| 43 |
| 39 namespace subtle { | 44 namespace subtle { |
| 40 class PrefMemberBase; | 45 class PrefMemberBase; |
| 41 class ScopedUserPrefUpdateBase; | 46 class ScopedUserPrefUpdateBase; |
| 42 } | 47 } |
| 43 | 48 |
| 44 // Base class for PrefServices. You can use the base class to read and | 49 // Base class for PrefServices. You can use the base class to read and |
| 45 // interact with preferences, but not to register new preferences; for | 50 // interact with preferences, but not to register new preferences; for |
| 46 // that see e.g. PrefRegistrySimple. | 51 // that see e.g. PrefRegistrySimple. |
| 47 // | 52 // |
| 48 // Settings and storage accessed through this class represent | 53 // Settings and storage accessed through this class represent |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 | 305 |
| 301 // Registration of pref change observers must be done using the | 306 // Registration of pref change observers must be done using the |
| 302 // PrefChangeRegistrar, which is declared as a friend here to grant it | 307 // PrefChangeRegistrar, which is declared as a friend here to grant it |
| 303 // access to the otherwise protected members Add/RemovePrefObserver. | 308 // access to the otherwise protected members Add/RemovePrefObserver. |
| 304 // PrefMember registers for preferences changes notification directly to | 309 // PrefMember registers for preferences changes notification directly to |
| 305 // avoid the storage overhead of the registrar, so its base class must be | 310 // avoid the storage overhead of the registrar, so its base class must be |
| 306 // declared as a friend, too. | 311 // declared as a friend, too. |
| 307 friend class PrefChangeRegistrar; | 312 friend class PrefChangeRegistrar; |
| 308 friend class subtle::PrefMemberBase; | 313 friend class subtle::PrefMemberBase; |
| 309 | 314 |
| 315 // For access to GetBrowserDictionary below. |
| 316 friend void chrome::MigrateBrowserUIUserPrefs(PrefService* prefs); |
| 317 |
| 310 // These are protected so they can only be accessed by the friend | 318 // These are protected so they can only be accessed by the friend |
| 311 // classes listed above. | 319 // classes listed above. |
| 312 // | 320 // |
| 313 // If the pref at the given path changes, we call the observer's | 321 // If the pref at the given path changes, we call the observer's |
| 314 // OnPreferenceChanged method. Note that observers should not call | 322 // OnPreferenceChanged method. Note that observers should not call |
| 315 // these methods directly but rather use a PrefChangeRegistrar to | 323 // these methods directly but rather use a PrefChangeRegistrar to |
| 316 // make sure the observer gets cleaned up properly. | 324 // make sure the observer gets cleaned up properly. |
| 317 // | 325 // |
| 318 // Virtual for testing. | 326 // Virtual for testing. |
| 319 virtual void AddPrefObserver(const char* path, PrefObserver* obs); | 327 virtual void AddPrefObserver(const char* path, PrefObserver* obs); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 341 base::Value* GetMutableUserPref(const char* path, | 349 base::Value* GetMutableUserPref(const char* path, |
| 342 base::Value::Type type); | 350 base::Value::Type type); |
| 343 | 351 |
| 344 // GetPreferenceValue is the equivalent of FindPreference(path)->GetValue(), | 352 // GetPreferenceValue is the equivalent of FindPreference(path)->GetValue(), |
| 345 // it has been added for performance. If is faster because it does | 353 // it has been added for performance. If is faster because it does |
| 346 // not need to find or create a Preference object to get the | 354 // not need to find or create a Preference object to get the |
| 347 // value (GetValue() calls back though the preference service to | 355 // value (GetValue() calls back though the preference service to |
| 348 // actually get the value.). | 356 // actually get the value.). |
| 349 const base::Value* GetPreferenceValue(const std::string& path) const; | 357 const base::Value* GetPreferenceValue(const std::string& path) const; |
| 350 | 358 |
| 359 // This is only to be used to migrate unregistered prefs to become registered. |
| 360 // TODO(dgrogan): Can be removed when m39 goes to stable. See |
| 361 // http://crbug.com/167256. |
| 362 scoped_ptr<base::DictionaryValue> GetBrowserDictionary() const; |
| 363 |
| 351 // Local cache of registered Preference objects. The pref_registry_ | 364 // Local cache of registered Preference objects. The pref_registry_ |
| 352 // is authoritative with respect to what the types and default values | 365 // is authoritative with respect to what the types and default values |
| 353 // of registered preferences are. | 366 // of registered preferences are. |
| 354 mutable PreferenceMap prefs_map_; | 367 mutable PreferenceMap prefs_map_; |
| 355 | 368 |
| 356 DISALLOW_COPY_AND_ASSIGN(PrefService); | 369 DISALLOW_COPY_AND_ASSIGN(PrefService); |
| 357 }; | 370 }; |
| 358 | 371 |
| 359 #endif // BASE_PREFS_PREF_SERVICE_H_ | 372 #endif // BASE_PREFS_PREF_SERVICE_H_ |
| OLD | NEW |