Index: base/prefs/pref_registry.h |
diff --git a/base/prefs/pref_registry.h b/base/prefs/pref_registry.h |
index a500b6e691a08e73a0be65651da892edaf86aec7..6fad6035dbe20650db75c484b91df25d709afd6e 100644 |
--- a/base/prefs/pref_registry.h |
+++ b/base/prefs/pref_registry.h |
@@ -27,10 +27,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 std::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 +63,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); |
}; |