diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-07 21:25:20 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-07 21:25:20 +0000 |
commit | 370bc7307374542078512971c25efe6047ed88e2 (patch) | |
tree | e41a14b6504bec3c873601a75db10430a42ba3ca /chrome/common/json_pref_store.cc | |
parent | cfcc491b55d8ce9526711bc9ea5c05d423cf6605 (diff) | |
download | chromium_src-370bc7307374542078512971c25efe6047ed88e2.zip chromium_src-370bc7307374542078512971c25efe6047ed88e2.tar.gz chromium_src-370bc7307374542078512971c25efe6047ed88e2.tar.bz2 |
Revert 135222 - it broke multiprofile tests - Use worker pool for IO in JsonPrefStore.
Review URL: https://chromiumcodereview.appspot.com/10344007
TBR=sergeyu@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10384047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135723 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/json_pref_store.cc')
-rw-r--r-- | chrome/common/json_pref_store.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/common/json_pref_store.cc b/chrome/common/json_pref_store.cc index b858eb6..65f4e10 100644 --- a/chrome/common/json_pref_store.cc +++ b/chrome/common/json_pref_store.cc @@ -13,7 +13,6 @@ #include "base/json/json_string_value_serializer.h" #include "base/memory/ref_counted.h" #include "base/message_loop_proxy.h" -#include "base/sequenced_task_runner.h" #include "base/values.h" namespace { @@ -27,17 +26,17 @@ class FileThreadDeserializer : public base::RefCountedThreadSafe<FileThreadDeserializer> { public: FileThreadDeserializer(JsonPrefStore* delegate, - base::SequencedTaskRunner* blocking_task_runner) + base::MessageLoopProxy* file_loop_proxy) : no_dir_(false), error_(PersistentPrefStore::PREF_READ_ERROR_NONE), delegate_(delegate), - blocking_task_runner_(blocking_task_runner), + file_loop_proxy_(file_loop_proxy), origin_loop_proxy_(base::MessageLoopProxy::current()) { } void Start(const FilePath& path) { DCHECK(origin_loop_proxy_->BelongsToCurrentThread()); - blocking_task_runner_->PostTask( + file_loop_proxy_->PostTask( FROM_HERE, base::Bind(&FileThreadDeserializer::ReadFileAndReport, this, path)); @@ -45,6 +44,8 @@ class FileThreadDeserializer // Deserializes JSON on the file thread. void ReadFileAndReport(const FilePath& path) { + DCHECK(file_loop_proxy_->BelongsToCurrentThread()); + value_.reset(DoReading(path, &error_, &no_dir_)); origin_loop_proxy_->PostTask( @@ -84,7 +85,7 @@ class FileThreadDeserializer PersistentPrefStore::PrefReadError error_; scoped_ptr<Value> value_; scoped_refptr<JsonPrefStore> delegate_; - scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; + scoped_refptr<base::MessageLoopProxy> file_loop_proxy_; scoped_refptr<base::MessageLoopProxy> origin_loop_proxy_; }; @@ -137,12 +138,12 @@ void FileThreadDeserializer::HandleErrors( } // namespace JsonPrefStore::JsonPrefStore(const FilePath& filename, - base::SequencedTaskRunner* blocking_task_runner) + base::MessageLoopProxy* file_message_loop_proxy) : path_(filename), - blocking_task_runner_(blocking_task_runner), + file_message_loop_proxy_(file_message_loop_proxy), prefs_(new DictionaryValue()), read_only_(false), - writer_(filename, blocking_task_runner), + writer_(filename, file_message_loop_proxy), error_delegate_(NULL), initialized_(false), read_error_(PREF_READ_ERROR_OTHER) { @@ -244,7 +245,7 @@ void JsonPrefStore::ReadPrefsAsync(ReadErrorDelegate *error_delegate) { // Start async reading of the preferences file. It will delete itself // in the end. scoped_refptr<FileThreadDeserializer> deserializer( - new FileThreadDeserializer(this, blocking_task_runner_)); + new FileThreadDeserializer(this, file_message_loop_proxy_.get())); deserializer->Start(path_); } |