| Index: chrome/common/pref_store.h
|
| diff --git a/chrome/common/pref_store.h b/chrome/common/pref_store.h
|
| index 808ffbd20d986e369b63148ee03c21bd1f5af304..745eff7157afca49114a3876118dd4205f7ba91c 100644
|
| --- a/chrome/common/pref_store.h
|
| +++ b/chrome/common/pref_store.h
|
| @@ -10,7 +10,6 @@
|
|
|
| #include "base/basictypes.h"
|
|
|
| -class DictionaryValue;
|
| class Value;
|
|
|
| // This is an abstract interface for reading and writing from/to a persistent
|
| @@ -23,9 +22,9 @@ class Value;
|
| class PrefStore {
|
| public:
|
| // Observer interface for monitoring PrefStore.
|
| - class ObserverInterface {
|
| + class Observer {
|
| public:
|
| - virtual ~ObserverInterface() {}
|
| + virtual ~Observer() {}
|
|
|
| // Called when the value for the given |key| in the store changes.
|
| virtual void OnPrefValueChanged(const std::string& key) = 0;
|
| @@ -33,61 +32,30 @@ class PrefStore {
|
| virtual void OnInitializationCompleted() = 0;
|
| };
|
|
|
| - // Unique integer code for each type of error so we can report them
|
| - // distinctly in a histogram.
|
| - // NOTE: Don't change the order here as it will change the server's meaning
|
| - // of the histogram.
|
| - enum PrefReadError {
|
| - PREF_READ_ERROR_NONE = 0,
|
| - PREF_READ_ERROR_JSON_PARSE,
|
| - PREF_READ_ERROR_JSON_TYPE,
|
| - PREF_READ_ERROR_ACCESS_DENIED,
|
| - PREF_READ_ERROR_FILE_OTHER,
|
| - PREF_READ_ERROR_FILE_LOCKED,
|
| - PREF_READ_ERROR_NO_FILE,
|
| - PREF_READ_ERROR_JSON_REPEAT,
|
| - PREF_READ_ERROR_OTHER,
|
| - PREF_READ_ERROR_FILE_NOT_SPECIFIED
|
| + // Return values for GetValue().
|
| + enum ReadResult {
|
| + // Value found and returned.
|
| + READ_OK,
|
| + // No value present, but skip other pref stores and use default.
|
| + READ_USE_DEFAULT,
|
| + // No value present.
|
| + READ_NO_VALUE,
|
| };
|
|
|
| - // To require that the default value be used for a preference, a
|
| - // PrefStore can set the value in its own prefs dictionary to the
|
| - // sentinel Value returned by this function.
|
| - // TODO(danno): Instead of having a sentinel value, pref stores
|
| - // should return a richer set of information from the property
|
| - // accessor methods to indicate that the default should be used.
|
| - static Value* CreateUseDefaultSentinelValue();
|
| -
|
| - // Returns true if a value is the special sentinel value created by
|
| - // CreateUseDefaultSentinelValue.
|
| - static bool IsUseDefaultSentinelValue(Value* value);
|
| -
|
| PrefStore() {}
|
| virtual ~PrefStore() {}
|
|
|
| // Add and remove observers.
|
| - virtual void AddObserver(ObserverInterface* observer) {}
|
| - virtual void RemoveObserver(ObserverInterface* observer) {}
|
| + virtual void AddObserver(Observer* observer) {}
|
| + virtual void RemoveObserver(Observer* observer) {}
|
|
|
| // Whether the store has completed all asynchronous initialization.
|
| - virtual bool IsInitializationComplete() { return true; }
|
| -
|
| - // Whether the store is in a pseudo-read-only mode where changes are not
|
| - // actually persisted to disk. This happens in some cases when there are
|
| - // read errors during startup.
|
| - virtual bool ReadOnly() const { return true; }
|
| -
|
| - // TODO(danno): PrefValueStore shouldn't allow direct access to the
|
| - // DictionaryValue. Instead, it should have getters that return a
|
| - // richer set of information for a pref, including if the store
|
| - // wants to return the default value for a preference.
|
| - virtual DictionaryValue* prefs() const = 0;
|
| -
|
| - virtual PrefReadError ReadPrefs() = 0;
|
| -
|
| - virtual bool WritePrefs() { return true; }
|
| + virtual bool IsInitializationComplete() const { return true; }
|
|
|
| - virtual void ScheduleWritePrefs() { }
|
| + // Get the value for a given preference |key| and stores it in |result|.
|
| + // |result| is only modified if the return value is READ_OK. Ownership of the
|
| + // |result| value remains with the PrefStore.
|
| + virtual ReadResult GetValue(const std::string& key, Value** result) const = 0;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(PrefStore);
|
| };
|
|
|