Moved JsonPrefStore to use SequencedWorkerPool instead of FILE thread. The pool also ensures that the same file requests are written in order received and that they block on shutdown.

BUG=153367
TEST=existing unit/browser tests

Review URL: https://codereview.chromium.org/11027070

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166603 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 46b74e6..aacfea08 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -133,7 +133,9 @@
 using content::PluginService;
 using content::ResourceDispatcherHost;
 
-BrowserProcessImpl::BrowserProcessImpl(const CommandLine& command_line)
+BrowserProcessImpl::BrowserProcessImpl(
+    base::SequencedTaskRunner* local_state_task_runner,
+    const CommandLine& command_line)
     : created_metrics_service_(false),
       created_watchdog_thread_(false),
       created_browser_policy_connector_(false),
@@ -147,7 +149,8 @@
       checked_for_new_frames_(false),
       using_new_frames_(false),
       render_widget_snapshot_taker_(new RenderWidgetSnapshotTaker),
-      download_status_updater_(new DownloadStatusUpdater) {
+      download_status_updater_(new DownloadStatusUpdater),
+      local_state_task_runner_(local_state_task_runner) {
   g_browser_process = this;
 
 #if defined(ENABLE_PRINTING)
@@ -709,10 +712,10 @@
   created_local_state_ = true;
 
   FilePath local_state_path;
-  PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path);
+  CHECK(PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path));
   local_state_.reset(
-      PrefService::CreatePrefService(local_state_path, policy_service(), NULL,
-                                     false));
+      PrefService::CreatePrefService(local_state_path, local_state_task_runner_,
+                                     policy_service(), NULL, false));
 
   // Initialize the prefs of the local state.
   chrome::RegisterLocalState(local_state_.get());