| Index: chrome/common/json_pref_store.cc
 | 
| diff --git a/chrome/common/json_pref_store.cc b/chrome/common/json_pref_store.cc
 | 
| index 65f4e107ddd889cc51f42c04a6e4884939459e95..b858eb6a6167d060daff6ee5c19969b64e93189c 100644
 | 
| --- a/chrome/common/json_pref_store.cc
 | 
| +++ b/chrome/common/json_pref_store.cc
 | 
| @@ -13,6 +13,7 @@
 | 
|  #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 {
 | 
| @@ -26,17 +27,17 @@ class FileThreadDeserializer
 | 
|      : public base::RefCountedThreadSafe<FileThreadDeserializer> {
 | 
|   public:
 | 
|    FileThreadDeserializer(JsonPrefStore* delegate,
 | 
| -                         base::MessageLoopProxy* file_loop_proxy)
 | 
| +                         base::SequencedTaskRunner* blocking_task_runner)
 | 
|        : no_dir_(false),
 | 
|          error_(PersistentPrefStore::PREF_READ_ERROR_NONE),
 | 
|          delegate_(delegate),
 | 
| -        file_loop_proxy_(file_loop_proxy),
 | 
| +        blocking_task_runner_(blocking_task_runner),
 | 
|          origin_loop_proxy_(base::MessageLoopProxy::current()) {
 | 
|    }
 | 
|  
 | 
|    void Start(const FilePath& path) {
 | 
|      DCHECK(origin_loop_proxy_->BelongsToCurrentThread());
 | 
| -    file_loop_proxy_->PostTask(
 | 
| +    blocking_task_runner_->PostTask(
 | 
|          FROM_HERE,
 | 
|          base::Bind(&FileThreadDeserializer::ReadFileAndReport,
 | 
|                     this, path));
 | 
| @@ -44,8 +45,6 @@ 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(
 | 
| @@ -85,7 +84,7 @@ class FileThreadDeserializer
 | 
|    PersistentPrefStore::PrefReadError error_;
 | 
|    scoped_ptr<Value> value_;
 | 
|    scoped_refptr<JsonPrefStore> delegate_;
 | 
| -  scoped_refptr<base::MessageLoopProxy> file_loop_proxy_;
 | 
| +  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
 | 
|    scoped_refptr<base::MessageLoopProxy> origin_loop_proxy_;
 | 
|  };
 | 
|  
 | 
| @@ -138,12 +137,12 @@ void FileThreadDeserializer::HandleErrors(
 | 
|  }  // namespace
 | 
|  
 | 
|  JsonPrefStore::JsonPrefStore(const FilePath& filename,
 | 
| -                             base::MessageLoopProxy* file_message_loop_proxy)
 | 
| +                             base::SequencedTaskRunner* blocking_task_runner)
 | 
|      : path_(filename),
 | 
| -      file_message_loop_proxy_(file_message_loop_proxy),
 | 
| +      blocking_task_runner_(blocking_task_runner),
 | 
|        prefs_(new DictionaryValue()),
 | 
|        read_only_(false),
 | 
| -      writer_(filename, file_message_loop_proxy),
 | 
| +      writer_(filename, blocking_task_runner),
 | 
|        error_delegate_(NULL),
 | 
|        initialized_(false),
 | 
|        read_error_(PREF_READ_ERROR_OTHER) {
 | 
| @@ -245,7 +244,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, file_message_loop_proxy_.get()));
 | 
| +      new FileThreadDeserializer(this, blocking_task_runner_));
 | 
|    deserializer->Start(path_);
 | 
|  }
 | 
|  
 | 
| 
 |