| Index: base/prefs/writeable_pref_store.h
|
| diff --git a/base/prefs/writeable_pref_store.h b/base/prefs/writeable_pref_store.h
|
| index 5ebab6428235015fdf8e5f29f8bd6311bd0da56c..d85b4c8d4272a054889e2b8eb3c9fe94292ec262 100644
|
| --- a/base/prefs/writeable_pref_store.h
|
| +++ b/base/prefs/writeable_pref_store.h
|
| @@ -17,14 +17,27 @@ class Value;
|
| // A pref store that can be written to as well as read from.
|
| class BASE_PREFS_EXPORT WriteablePrefStore : public PrefStore {
|
| public:
|
| + // PrefWriteFlags can be used to change the way a pref will be written to
|
| + // storage.
|
| + enum PrefWriteFlags : uint32 {
|
| + // No flags are specified.
|
| + DEFAULT_PREF_WRITE_FLAGS = 0,
|
| +
|
| + // This marks the pref as "lossy". There is no strict time guarantee on when
|
| + // a lossy pref will be persisted to permanent storage when it is modified.
|
| + LOSSY_PREF_WRITE_FLAG = 1 << 1
|
| + };
|
| +
|
| WriteablePrefStore() {}
|
|
|
| // Sets a |value| for |key| in the store. Assumes ownership of |value|, which
|
| - // must be non-NULL.
|
| - virtual void SetValue(const std::string& key, base::Value* value) = 0;
|
| + // must be non-NULL. |flags| is a bitmask of PrefWriteFlags.
|
| + virtual void SetValue(const std::string& key,
|
| + base::Value* value,
|
| + uint32 flags) = 0;
|
|
|
| // Removes the value for |key|.
|
| - virtual void RemoveValue(const std::string& key) = 0;
|
| + virtual void RemoveValue(const std::string& key, uint32 flags) = 0;
|
|
|
| // Equivalent to PrefStore::GetValue but returns a mutable value.
|
| virtual bool GetMutableValue(const std::string& key,
|
| @@ -34,13 +47,17 @@ class BASE_PREFS_EXPORT WriteablePrefStore : public PrefStore {
|
| // if one retrieves a list or dictionary with GetMutableValue and change its
|
| // value. SetValue takes care of notifications itself. Note that
|
| // ReportValueChanged will trigger notifications even if nothing has changed.
|
| - virtual void ReportValueChanged(const std::string& key) = 0;
|
| + // |flags| is a bitmask of PrefWriteFlags.
|
| + virtual void ReportValueChanged(const std::string& key, uint32 flags) = 0;
|
|
|
| // Same as SetValue, but doesn't generate notifications. This is used by
|
| // PrefService::GetMutableUserPref() in order to put empty entries
|
| // into the user pref store. Using SetValue is not an option since existing
|
| - // tests rely on the number of notifications generated.
|
| - virtual void SetValueSilently(const std::string& key, base::Value* value) = 0;
|
| + // tests rely on the number of notifications generated. |flags| is a bitmask
|
| + // of PrefWriteFlags.
|
| + virtual void SetValueSilently(const std::string& key,
|
| + base::Value* value,
|
| + uint32 flags) = 0;
|
|
|
| protected:
|
| ~WriteablePrefStore() override {}
|
|
|