Index: base/prefs/pref_registry.h |
diff --git a/base/prefs/pref_registry.h b/base/prefs/pref_registry.h |
index a500b6e691a08e73a0be65651da892edaf86aec7..cc5804ef10a9d2e713be2dc9c50d205219f34c04 100644 |
--- a/base/prefs/pref_registry.h |
+++ b/base/prefs/pref_registry.h |
@@ -5,6 +5,7 @@ |
#ifndef BASE_PREFS_PREF_REGISTRY_H_ |
#define BASE_PREFS_PREF_REGISTRY_H_ |
+#include "base/containers/hash_tables.h" |
#include "base/memory/ref_counted.h" |
#include "base/prefs/base_prefs_export.h" |
#include "base/prefs/pref_value_map.h" |
@@ -27,10 +28,26 @@ class PrefStore; |
// also work, but this is being deprecated. |
class BASE_PREFS_EXPORT PrefRegistry : public base::RefCounted<PrefRegistry> { |
public: |
+ // Registration flags that can be specified which impact how the pref will |
+ // behave or be stored. This will be passed in a bitmask when the pref is |
+ // registered. Subclasses of PrefRegistry can specify their own flags. Care |
+ // must be taken to ensure none of these overlap with the flags below. |
+ enum PrefRegistrationFlags { |
+ // No flags are specified. |
+ NO_REGISTRATION_FLAGS = 0, |
+ |
+ // The first 8 bits are reserved for subclasses of PrefRegistry to use. |
+ }; |
+ |
typedef PrefValueMap::const_iterator const_iterator; |
+ typedef base::hash_map<std::string, uint32> PrefRegistrationFlagsMap; |
PrefRegistry(); |
+ // Retrieve the set of registration flags for the given preference. The return |
+ // value is a bitmask of PrefRegistrationFlags. |
+ uint32 GetRegistrationFlags(const std::string& pref_name) const; |
+ |
// Gets the registered defaults. |
scoped_refptr<PrefStore> defaults(); |
@@ -47,11 +64,17 @@ class BASE_PREFS_EXPORT PrefRegistry : public base::RefCounted<PrefRegistry> { |
friend class base::RefCounted<PrefRegistry>; |
virtual ~PrefRegistry(); |
- // Used by subclasses to register a default value for a preference. |
- void RegisterPreference(const std::string& path, base::Value* default_value); |
+ // Used by subclasses to register a default value and registration flags for |
+ // a preference. |flags| is a bitmask of |PrefRegistrationFlags|. |
+ void RegisterPreference(const std::string& path, |
+ base::Value* default_value, |
+ uint32 flags); |
scoped_refptr<DefaultPrefStore> defaults_; |
+ // A map of pref name to a bitmask of PrefRegistrationFlags. |
+ PrefRegistrationFlagsMap registration_flags_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(PrefRegistry); |
}; |