Chromium Code Reviews| Index: chrome/common/json_pref_store.cc |
| diff --git a/chrome/common/json_pref_store.cc b/chrome/common/json_pref_store.cc |
| index 488d7c79dd61ebeeaaced577965ab2304ed6b0b1..65f4e107ddd889cc51f42c04a6e4884939459e95 100644 |
| --- a/chrome/common/json_pref_store.cc |
| +++ b/chrome/common/json_pref_store.cc |
| @@ -79,6 +79,7 @@ class FileThreadDeserializer |
| private: |
| friend class base::RefCountedThreadSafe<FileThreadDeserializer>; |
| + ~FileThreadDeserializer() {} |
| bool no_dir_; |
| PersistentPrefStore::PrefReadError error_; |
| @@ -148,10 +149,6 @@ JsonPrefStore::JsonPrefStore(const FilePath& filename, |
| read_error_(PREF_READ_ERROR_OTHER) { |
| } |
| -JsonPrefStore::~JsonPrefStore() { |
| - CommitPendingWrite(); |
| -} |
| - |
| PrefStore::ReadResult JsonPrefStore::GetValue(const std::string& key, |
| const Value** result) const { |
| Value* tmp = NULL; |
| @@ -224,6 +221,45 @@ PersistentPrefStore::PrefReadError JsonPrefStore::GetReadError() const { |
| return read_error_; |
| } |
| +PersistentPrefStore::PrefReadError JsonPrefStore::ReadPrefs() { |
| + if (path_.empty()) { |
| + OnFileRead(NULL, PREF_READ_ERROR_FILE_NOT_SPECIFIED, false); |
| + return PREF_READ_ERROR_FILE_NOT_SPECIFIED; |
| + } |
| + |
| + PrefReadError error; |
| + bool no_dir; |
| + Value* value = FileThreadDeserializer::DoReading(path_, &error, &no_dir); |
| + OnFileRead(value, error, no_dir); |
| + return error; |
| +} |
| + |
| +void JsonPrefStore::ReadPrefsAsync(ReadErrorDelegate *error_delegate) { |
| + initialized_ = false; |
| + error_delegate_.reset(error_delegate); |
| + if (path_.empty()) { |
| + OnFileRead(NULL, PREF_READ_ERROR_FILE_NOT_SPECIFIED, false); |
| + return; |
| + } |
| + |
| + // Start async reading of the preferences file. It will delete itself |
| + // in the end. |
| + scoped_refptr<FileThreadDeserializer> deserializer( |
| + new FileThreadDeserializer(this, file_message_loop_proxy_.get())); |
| + deserializer->Start(path_); |
| +} |
| + |
| +void JsonPrefStore::CommitPendingWrite() { |
| + if (writer_.HasPendingWrite() && !read_only_) |
| + writer_.DoScheduledWrite(); |
| +} |
| + |
| +void JsonPrefStore::ReportValueChanged(const std::string& key) { |
| + FOR_EACH_OBSERVER(PrefStore::Observer, observers_, OnPrefValueChanged(key)); |
| + if (!read_only_) |
| + writer_.ScheduleWrite(this); |
| +} |
| + |
| void JsonPrefStore::OnFileRead(Value* value_owned, |
| PersistentPrefStore::PrefReadError error, |
| bool no_dir) { |
| @@ -269,43 +305,8 @@ void JsonPrefStore::OnFileRead(Value* value_owned, |
| OnInitializationCompleted(true)); |
| } |
| -void JsonPrefStore::ReadPrefsAsync(ReadErrorDelegate *error_delegate) { |
| - initialized_ = false; |
| - error_delegate_.reset(error_delegate); |
| - if (path_.empty()) { |
| - OnFileRead(NULL, PREF_READ_ERROR_FILE_NOT_SPECIFIED, false); |
| - return; |
| - } |
| - |
| - // Start async reading of the preferences file. It will delete itself |
| - // in the end. |
| - scoped_refptr<FileThreadDeserializer> deserializer( |
| - new FileThreadDeserializer(this, file_message_loop_proxy_.get())); |
| - deserializer->Start(path_); |
| -} |
| - |
| -PersistentPrefStore::PrefReadError JsonPrefStore::ReadPrefs() { |
| - if (path_.empty()) { |
| - OnFileRead(NULL, PREF_READ_ERROR_FILE_NOT_SPECIFIED, false); |
| - return PREF_READ_ERROR_FILE_NOT_SPECIFIED; |
| - } |
| - |
| - PrefReadError error; |
| - bool no_dir; |
|
Nico
2012/04/25 13:20:37
why are you moving unrelated functions around?
Ryan Sleevi
2012/04/25 15:13:59
Places where the order of definition /almost/ matc
|
| - Value* value = FileThreadDeserializer::DoReading(path_, &error, &no_dir); |
| - OnFileRead(value, error, no_dir); |
| - return error; |
| -} |
| - |
| -void JsonPrefStore::CommitPendingWrite() { |
| - if (writer_.HasPendingWrite() && !read_only_) |
| - writer_.DoScheduledWrite(); |
| -} |
| - |
| -void JsonPrefStore::ReportValueChanged(const std::string& key) { |
| - FOR_EACH_OBSERVER(PrefStore::Observer, observers_, OnPrefValueChanged(key)); |
| - if (!read_only_) |
| - writer_.ScheduleWrite(this); |
| +JsonPrefStore::~JsonPrefStore() { |
| + CommitPendingWrite(); |
| } |
| bool JsonPrefStore::SerializeData(std::string* output) { |