| 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 |
| 11 #ifndef COMPONENTS_PREFS_PREF_SERVICE_H_ | 11 #ifndef COMPONENTS_PREFS_PREF_SERVICE_H_ |
| 12 #define COMPONENTS_PREFS_PREF_SERVICE_H_ | 12 #define COMPONENTS_PREFS_PREF_SERVICE_H_ |
| 13 | 13 |
| 14 #include <stdint.h> | 14 #include <stdint.h> |
| 15 | 15 |
| 16 #include <memory> |
| 16 #include <set> | 17 #include <set> |
| 17 #include <string> | 18 #include <string> |
| 18 | 19 |
| 19 #include "base/callback.h" | 20 #include "base/callback.h" |
| 20 #include "base/compiler_specific.h" | 21 #include "base/compiler_specific.h" |
| 21 #include "base/containers/hash_tables.h" | 22 #include "base/containers/hash_tables.h" |
| 22 #include "base/macros.h" | 23 #include "base/macros.h" |
| 23 #include "base/memory/ref_counted.h" | 24 #include "base/memory/ref_counted.h" |
| 24 #include "base/memory/scoped_ptr.h" | |
| 25 #include "base/observer_list.h" | 25 #include "base/observer_list.h" |
| 26 #include "base/threading/non_thread_safe.h" | 26 #include "base/threading/non_thread_safe.h" |
| 27 #include "base/values.h" | 27 #include "base/values.h" |
| 28 #include "components/prefs/base_prefs_export.h" | 28 #include "components/prefs/base_prefs_export.h" |
| 29 #include "components/prefs/persistent_pref_store.h" | 29 #include "components/prefs/persistent_pref_store.h" |
| 30 | 30 |
| 31 class PrefNotifier; | 31 class PrefNotifier; |
| 32 class PrefNotifierImpl; | 32 class PrefNotifierImpl; |
| 33 class PrefObserver; | 33 class PrefObserver; |
| 34 class PrefRegistry; | 34 class PrefRegistry; |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 // registered preference. In that case, will never return NULL. | 244 // registered preference. In that case, will never return NULL. |
| 245 const base::Value* GetDefaultPrefValue(const std::string& path) const; | 245 const base::Value* GetDefaultPrefValue(const std::string& path) const; |
| 246 | 246 |
| 247 // Returns true if a value has been set for the specified path. | 247 // Returns true if a value has been set for the specified path. |
| 248 // NOTE: this is NOT the same as FindPreference. In particular | 248 // NOTE: this is NOT the same as FindPreference. In particular |
| 249 // FindPreference returns whether RegisterXXX has been invoked, where as | 249 // FindPreference returns whether RegisterXXX has been invoked, where as |
| 250 // this checks if a value exists for the path. | 250 // this checks if a value exists for the path. |
| 251 bool HasPrefPath(const std::string& path) const; | 251 bool HasPrefPath(const std::string& path) const; |
| 252 | 252 |
| 253 // Returns a dictionary with effective preference values. | 253 // Returns a dictionary with effective preference values. |
| 254 scoped_ptr<base::DictionaryValue> GetPreferenceValues() const; | 254 std::unique_ptr<base::DictionaryValue> GetPreferenceValues() const; |
| 255 | 255 |
| 256 // Returns a dictionary with effective preference values, omitting prefs that | 256 // Returns a dictionary with effective preference values, omitting prefs that |
| 257 // are at their default values. | 257 // are at their default values. |
| 258 scoped_ptr<base::DictionaryValue> GetPreferenceValuesOmitDefaults() const; | 258 std::unique_ptr<base::DictionaryValue> GetPreferenceValuesOmitDefaults() |
| 259 const; |
| 259 | 260 |
| 260 // Returns a dictionary with effective preference values. Contrary to | 261 // Returns a dictionary with effective preference values. Contrary to |
| 261 // GetPreferenceValues(), the paths of registered preferences are not split on | 262 // GetPreferenceValues(), the paths of registered preferences are not split on |
| 262 // '.' characters. If a registered preference stores a dictionary, however, | 263 // '.' characters. If a registered preference stores a dictionary, however, |
| 263 // the hierarchical structure inside the preference will be preserved. | 264 // the hierarchical structure inside the preference will be preserved. |
| 264 // For example, if "foo.bar" is a registered preference, the result could look | 265 // For example, if "foo.bar" is a registered preference, the result could look |
| 265 // like this: | 266 // like this: |
| 266 // {"foo.bar": {"a": {"b": true}}}. | 267 // {"foo.bar": {"a": {"b": true}}}. |
| 267 scoped_ptr<base::DictionaryValue> GetPreferenceValuesWithoutPathExpansion() | 268 std::unique_ptr<base::DictionaryValue> |
| 268 const; | 269 GetPreferenceValuesWithoutPathExpansion() const; |
| 269 | 270 |
| 270 bool ReadOnly() const; | 271 bool ReadOnly() const; |
| 271 | 272 |
| 272 PrefInitializationStatus GetInitializationStatus() const; | 273 PrefInitializationStatus GetInitializationStatus() const; |
| 273 | 274 |
| 274 // Tell our PrefValueStore to update itself to |command_line_store|. | 275 // Tell our PrefValueStore to update itself to |command_line_store|. |
| 275 // Takes ownership of the store. | 276 // Takes ownership of the store. |
| 276 virtual void UpdateCommandLinePrefStore(PrefStore* command_line_store); | 277 virtual void UpdateCommandLinePrefStore(PrefStore* command_line_store); |
| 277 | 278 |
| 278 // We run the callback once, when initialization completes. The bool | 279 // We run the callback once, when initialization completes. The bool |
| (...skipping 16 matching lines...) Expand all Loading... |
| 295 // implemented in chrome/browser/prefs/browser_prefs.cc. | 296 // implemented in chrome/browser/prefs/browser_prefs.cc. |
| 296 PrefRegistry* DeprecatedGetPrefRegistry(); | 297 PrefRegistry* DeprecatedGetPrefRegistry(); |
| 297 | 298 |
| 298 // Clears mutable values. | 299 // Clears mutable values. |
| 299 void ClearMutableValues(); | 300 void ClearMutableValues(); |
| 300 | 301 |
| 301 protected: | 302 protected: |
| 302 // The PrefNotifier handles registering and notifying preference observers. | 303 // The PrefNotifier handles registering and notifying preference observers. |
| 303 // It is created and owned by this PrefService. Subclasses may access it for | 304 // It is created and owned by this PrefService. Subclasses may access it for |
| 304 // unit testing. | 305 // unit testing. |
| 305 scoped_ptr<PrefNotifierImpl> pref_notifier_; | 306 std::unique_ptr<PrefNotifierImpl> pref_notifier_; |
| 306 | 307 |
| 307 // The PrefValueStore provides prioritized preference values. It is owned by | 308 // The PrefValueStore provides prioritized preference values. It is owned by |
| 308 // this PrefService. Subclasses may access it for unit testing. | 309 // this PrefService. Subclasses may access it for unit testing. |
| 309 scoped_ptr<PrefValueStore> pref_value_store_; | 310 std::unique_ptr<PrefValueStore> pref_value_store_; |
| 310 | 311 |
| 311 scoped_refptr<PrefRegistry> pref_registry_; | 312 scoped_refptr<PrefRegistry> pref_registry_; |
| 312 | 313 |
| 313 // Pref Stores and profile that we passed to the PrefValueStore. | 314 // Pref Stores and profile that we passed to the PrefValueStore. |
| 314 scoped_refptr<PersistentPrefStore> user_pref_store_; | 315 scoped_refptr<PersistentPrefStore> user_pref_store_; |
| 315 | 316 |
| 316 // Callback to call when a read error occurs. | 317 // Callback to call when a read error occurs. |
| 317 base::Callback<void(PersistentPrefStore::PrefReadError)> read_error_callback_; | 318 base::Callback<void(PersistentPrefStore::PrefReadError)> read_error_callback_; |
| 318 | 319 |
| 319 private: | 320 private: |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 | 380 |
| 380 // Local cache of registered Preference objects. The pref_registry_ | 381 // Local cache of registered Preference objects. The pref_registry_ |
| 381 // is authoritative with respect to what the types and default values | 382 // is authoritative with respect to what the types and default values |
| 382 // of registered preferences are. | 383 // of registered preferences are. |
| 383 mutable PreferenceMap prefs_map_; | 384 mutable PreferenceMap prefs_map_; |
| 384 | 385 |
| 385 DISALLOW_COPY_AND_ASSIGN(PrefService); | 386 DISALLOW_COPY_AND_ASSIGN(PrefService); |
| 386 }; | 387 }; |
| 387 | 388 |
| 388 #endif // COMPONENTS_PREFS_PREF_SERVICE_H_ | 389 #endif // COMPONENTS_PREFS_PREF_SERVICE_H_ |
| OLD | NEW |