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

Unified Diff: chrome/browser/sync_file_system/drive_backend/sync_worker.cc

Issue 236313009: [SyncFS] Post tasks between SyncEngine and SyncWorker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use post tasks temporarily Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync_file_system/drive_backend/sync_worker.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
index f58c66c3f83b268e4f5dfd2fb23dea0744b4bd74..d1b9ea8664f041f9194d1f79acecf7579680c4db 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
@@ -56,6 +56,46 @@ namespace {
void EmptyStatusCallback(SyncStatusCode status) {}
+void RelayToTaskRunner(base::TaskRunner* task_runner,
peria 2014/04/16 05:56:12 I have to merge some RelayToTaskRunner().
+ const tracked_objects::Location& from_here,
+ const base::Callback<void(void)>& callback) {
tzik 2014/04/16 17:21:19 s/base::Callback<void(void)>/base::Closure/
peria 2014/04/17 01:40:19 Done.
+ task_runner->PostTask(from_here, callback);
+}
+
+template <typename T>
+void RelayToTaskRunner(base::TaskRunner* task_runner,
+ const tracked_objects::Location& from_here,
+ const base::Callback<void(T)>& callback,
+ const T& p1) {
tzik 2014/04/16 17:21:19 # I'll revisit later. This probably needs base::i
tzik 2014/04/16 18:26:21 Whether we should do it or not, we can do it by: s
peria 2014/04/17 01:40:19 Done.
+ task_runner->PostTask(from_here, base::Bind(callback, p1));
+}
+
+template <typename T>
+void RelayToTaskRunner(base::TaskRunner* task_runner,
+ const tracked_objects::Location& from_here,
+ const base::Callback<void(const T& p1)>& callback,
+ const T& p1) {
+ task_runner->PostTask(from_here, base::Bind(callback, p1));
+}
+
+template <typename T1, typename T2>
+void RelayToTaskRunner(base::TaskRunner* task_runner,
+ const tracked_objects::Location& from_here,
+ const base::Callback<void(T1, const T2&)>& callback,
+ const T1& p1,
+ const T2& p2) {
+ task_runner->PostTask(from_here, base::Bind(callback, p1, p2));
+}
+
+template <typename T1, typename T2>
+void RelayToTaskRunner(base::TaskRunner* task_runner,
+ const tracked_objects::Location& from_here,
+ const base::Callback<void(T1, T2)>& callback,
+ const T1& p1,
+ const T2& p2) {
+ task_runner->PostTask(from_here, base::Bind(callback, p1, p2));
+}
+
} // namespace
scoped_ptr<SyncWorker> SyncWorker::CreateOnWorker(
@@ -211,8 +251,11 @@ void SyncWorker::SetSyncEnabled(bool enabled) {
if (old_state == GetCurrentState())
return;
- // TODO(peria): PostTask()
- sync_engine_->UpdateSyncEnabled(enabled);
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ base::Bind(&SyncEngine::UpdateSyncEnabled,
+ base::Unretained(sync_engine_.get())),
tzik 2014/04/16 17:21:19 Pass WeakPtr directly instead of raw pointer, sinc
tzik 2014/04/16 17:42:20 BTW, just ui_task_runner->PostTask() seems to work
peria 2014/04/17 01:40:19 Done.
+ enabled);
}
SyncStatusCode SyncWorker::SetDefaultConflictResolutionPolicy(
@@ -274,8 +317,10 @@ void SyncWorker::NotifyLastOperationStatus(
UpdateServiceStateFromSyncStatusCode(status, used_network);
if (GetMetadataDatabase()) {
- // TODO(peria): Post task
- sync_engine_->NotifyLastOperationStatus();
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ base::Bind(&SyncEngine::NotifyLastOperationStatus,
+ base::Unretained(sync_engine_.get())));
}
}
@@ -410,8 +455,10 @@ void SyncWorker::DidInitialize(SyncEngineInitializer* initializer,
if (metadata_database)
context_->SetMetadataDatabase(metadata_database.Pass());
- // TODO(peria): Post task
- sync_engine_->UpdateRegisteredApps();
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ base::Bind(&SyncEngine::UpdateRegisteredApps,
+ base::Unretained(sync_engine_.get())));
}
void SyncWorker::DidProcessRemoteChange(RemoteToLocalSyncer* syncer,
@@ -420,13 +467,20 @@ void SyncWorker::DidProcessRemoteChange(RemoteToLocalSyncer* syncer,
if (syncer->is_sync_root_deletion()) {
MetadataDatabase::ClearDatabase(context_->PassMetadataDatabase());
PostInitializeTask();
- callback.Run(status, syncer->url());
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ callback,
+ status,
+ syncer->url());
return;
}
if (status == SYNC_STATUS_OK) {
- // TODO(peria): Post task
- sync_engine_->DidProcessRemoteChange(syncer);
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ base::Bind(&SyncEngine::DidProcessRemoteChange,
+ base::Unretained(sync_engine_.get())),
+ syncer);
if (syncer->sync_action() == SYNC_ACTION_DELETED &&
syncer->url().is_valid() &&
@@ -435,13 +489,18 @@ void SyncWorker::DidProcessRemoteChange(RemoteToLocalSyncer* syncer,
}
should_check_conflict_ = true;
}
- callback.Run(status, syncer->url());
+
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ callback,
+ status,
+ syncer->url());
}
void SyncWorker::DidApplyLocalChange(LocalToRemoteSyncer* syncer,
const SyncStatusCallback& callback,
SyncStatusCode status) {
- // TODO(peria): Post task
+ // TODO(peria): PostTask (Simple replace fails DriveBackendSync* tests)
sync_engine_->DidApplyLocalChange(syncer, status);
peria 2014/04/16 05:56:12 This method needs more than replacing with RelayTo
if (status == SYNC_STATUS_UNKNOWN_ORIGIN && syncer->url().is_valid()) {
@@ -583,8 +642,12 @@ void SyncWorker::UpdateServiceState(RemoteServiceState state,
util::Log(logging::LOG_VERBOSE, FROM_HERE,
"Service state changed: %d->%d: %s",
old_state, GetCurrentState(), description.c_str());
- // TODO(peria): Post task
- sync_engine_->UpdateServiceState(description);
+
+ RelayToTaskRunner(context_->GetUiTaskRunner(),
+ FROM_HERE,
+ base::Bind(&SyncEngine::UpdateServiceState,
+ base::Unretained(sync_engine_.get())),
+ description);
}
} // namespace drive_backend
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698