Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc

Issue 293003002: [SyncFS] Remove using MessageLoop in worker thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: RemoteToLocalSyncer Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer. h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer. h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 return resources.Pass(); 70 return resources.Pass();
71 } 71 }
72 72
73 // Functions above are for wrapping the access to legacy GData WAPI classes. 73 // Functions above are for wrapping the access to legacy GData WAPI classes.
74 //////////////////////////////////////////////////////////////////////////////// 74 ////////////////////////////////////////////////////////////////////////////////
75 75
76 } // namespace 76 } // namespace
77 77
78 SyncEngineInitializer::SyncEngineInitializer( 78 SyncEngineInitializer::SyncEngineInitializer(
79 SyncEngineContext* sync_context, 79 SyncEngineContext* sync_context,
80 base::SequencedTaskRunner* task_runner,
81 const base::FilePath& database_path, 80 const base::FilePath& database_path,
82 leveldb::Env* env_override) 81 leveldb::Env* env_override)
83 : sync_context_(sync_context), 82 : sync_context_(sync_context),
84 env_override_(env_override), 83 env_override_(env_override),
85 task_runner_(task_runner),
86 database_path_(database_path), 84 database_path_(database_path),
87 find_sync_root_retry_count_(0), 85 find_sync_root_retry_count_(0),
88 largest_change_id_(0), 86 largest_change_id_(0),
89 weak_ptr_factory_(this) { 87 weak_ptr_factory_(this) {
90 DCHECK(sync_context); 88 DCHECK(sync_context);
91 DCHECK(task_runner);
92 } 89 }
93 90
94 SyncEngineInitializer::~SyncEngineInitializer() { 91 SyncEngineInitializer::~SyncEngineInitializer() {
95 if (!cancel_callback_.is_null()) 92 if (!cancel_callback_.is_null())
96 cancel_callback_.Run(); 93 cancel_callback_.Run();
97 } 94 }
98 95
99 void SyncEngineInitializer::RunPreflight(scoped_ptr<SyncTaskToken> token) { 96 void SyncEngineInitializer::RunPreflight(scoped_ptr<SyncTaskToken> token) {
100 util::Log(logging::LOG_VERBOSE, FROM_HERE, "[Initialize] Start."); 97 util::Log(logging::LOG_VERBOSE, FROM_HERE, "[Initialize] Start.");
101 DCHECK(sync_context_); 98 DCHECK(sync_context_);
102 DCHECK(sync_context_->GetDriveService()); 99 DCHECK(sync_context_->GetDriveService());
103 100
104 // The metadata seems to have been already initialized. Just return with OK. 101 // The metadata seems to have been already initialized. Just return with OK.
105 if (sync_context_->GetMetadataDatabase()) { 102 if (sync_context_->GetMetadataDatabase()) {
106 util::Log(logging::LOG_VERBOSE, FROM_HERE, 103 util::Log(logging::LOG_VERBOSE, FROM_HERE,
107 "[Initialize] Already initialized."); 104 "[Initialize] Already initialized.");
108 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); 105 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK);
109 return; 106 return;
110 } 107 }
111 108
112 // TODO(tzik): Stop using MessageLoopProxy before moving out from UI thread.
113 scoped_refptr<base::SequencedTaskRunner> worker_task_runner(
114 base::MessageLoopProxy::current());
115
116 MetadataDatabase::Create( 109 MetadataDatabase::Create(
117 worker_task_runner.get(), 110 sync_context_->GetWorkerTaskRunner(),
118 task_runner_.get(), database_path_, env_override_, 111 sync_context_->GetFileTaskRunner(),
112 database_path_,
113 env_override_,
119 base::Bind(&SyncEngineInitializer::DidCreateMetadataDatabase, 114 base::Bind(&SyncEngineInitializer::DidCreateMetadataDatabase,
120 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); 115 weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
121 } 116 }
122 117
123 scoped_ptr<MetadataDatabase> SyncEngineInitializer::PassMetadataDatabase() { 118 scoped_ptr<MetadataDatabase> SyncEngineInitializer::PassMetadataDatabase() {
124 return metadata_database_.Pass(); 119 return metadata_database_.Pass();
125 } 120 }
126 121
127 void SyncEngineInitializer::DidCreateMetadataDatabase( 122 void SyncEngineInitializer::DidCreateMetadataDatabase(
128 scoped_ptr<SyncTaskToken> token, 123 scoped_ptr<SyncTaskToken> token,
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return; 393 return;
399 } 394 }
400 395
401 util::Log(logging::LOG_VERBOSE, FROM_HERE, 396 util::Log(logging::LOG_VERBOSE, FROM_HERE,
402 "[Initialize] Completed successfully."); 397 "[Initialize] Completed successfully.");
403 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK); 398 SyncTaskManager::NotifyTaskDone(token.Pass(), SYNC_STATUS_OK);
404 } 399 }
405 400
406 } // namespace drive_backend 401 } // namespace drive_backend
407 } // namespace sync_file_system 402 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698