| Index: chrome/common/json_pref_store.cc
|
| diff --git a/chrome/common/json_pref_store.cc b/chrome/common/json_pref_store.cc
|
| index d68307f622261b919ffdd4e907c2e231955d79ac..bbf33d738afbe771cf3e02ca8653f35066010347 100644
|
| --- a/chrome/common/json_pref_store.cc
|
| +++ b/chrome/common/json_pref_store.cc
|
| @@ -30,7 +30,46 @@ JsonPrefStore::~JsonPrefStore() {
|
| writer_.DoScheduledWrite();
|
| }
|
|
|
| -PrefStore::PrefReadError JsonPrefStore::ReadPrefs() {
|
| +PrefStore::ReadResult JsonPrefStore::GetValue(const std::string& key,
|
| + Value** result) const {
|
| + return prefs_->Get(key, result) ? READ_OK : READ_NO_VALUE;
|
| +}
|
| +
|
| +void JsonPrefStore::AddObserver(PrefStore::Observer* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void JsonPrefStore::RemoveObserver(PrefStore::Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| +void JsonPrefStore::SetValue(const std::string& key, Value* value) {
|
| + DCHECK(value);
|
| + scoped_ptr<Value> new_value(value);
|
| + Value* old_value = NULL;
|
| + prefs_->Get(key, &old_value);
|
| + if (!old_value || !value->Equals(old_value)) {
|
| + prefs_->Set(key, new_value.release());
|
| + FOR_EACH_OBSERVER(PrefStore::Observer, observers_, OnPrefValueChanged(key));
|
| + }
|
| +}
|
| +
|
| +void JsonPrefStore::SetValueSilently(const std::string& key, Value* value) {
|
| + DCHECK(value);
|
| + scoped_ptr<Value> new_value(value);
|
| + Value* old_value = NULL;
|
| + prefs_->Get(key, &old_value);
|
| + if (!old_value || !value->Equals(old_value))
|
| + prefs_->Set(key, new_value.release());
|
| +}
|
| +
|
| +void JsonPrefStore::RemoveValue(const std::string& key) {
|
| + if (prefs_->Remove(key, NULL)) {
|
| + FOR_EACH_OBSERVER(PrefStore::Observer, observers_, OnPrefValueChanged(key));
|
| + }
|
| +}
|
| +
|
| +PersistentPrefStore::PrefReadError JsonPrefStore::ReadPrefs() {
|
| if (path_.empty()) {
|
| read_only_ = true;
|
| return PREF_READ_ERROR_FILE_NOT_SPECIFIED;
|
|
|