Index: chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
index 50e048589da91107117070978a2a68df0c112523..5a620d017ce799fd9960f42a9665683c78c2e36c 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
@@ -370,7 +370,6 @@ void LocalToRemoteSyncer::HandleConflict(scoped_ptr<SyncTaskToken> token) { |
remote_details.title() == title.AsUTF8Unsafe() && |
HasFileAsParent(remote_details, |
remote_parent_folder_tracker_->file_id())) { |
- |
MoveToBackground( |
base::Bind(&LocalToRemoteSyncer::UpdateTrackerForReusedFolder, |
weak_ptr_factory_.GetWeakPtr(), |
@@ -387,11 +386,9 @@ void LocalToRemoteSyncer::HandleConflict(scoped_ptr<SyncTaskToken> token) { |
void LocalToRemoteSyncer::UpdateTrackerForReusedFolder( |
const FileDetails& details, |
scoped_ptr<SyncTaskToken> token) { |
- metadata_database()->UpdateTracker( |
- remote_file_tracker_->tracker_id(), details, |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ SyncStatusCode status = metadata_database()->UpdateTracker( |
+ remote_file_tracker_->tracker_id(), details); |
+ SyncCompleted(token.Pass(), status); |
} |
void LocalToRemoteSyncer::HandleExistingRemoteFile( |
@@ -482,10 +479,9 @@ void LocalToRemoteSyncer::DidDeleteRemoteFile( |
// resolution, ignore the local deletion. |
if (status == SYNC_STATUS_OK || |
error == google_apis::HTTP_NOT_FOUND) { |
- metadata_database()->UpdateByDeletedRemoteFile( |
- remote_file_tracker_->file_id(), |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))); |
+ SyncStatusCode status = metadata_database()->UpdateByDeletedRemoteFile( |
+ remote_file_tracker_->file_id()); |
+ SyncCompleted(token.Pass(), status); |
return; |
} |
@@ -551,11 +547,10 @@ void LocalToRemoteSyncer::DidUploadExistingFile( |
} |
DCHECK(entry); |
- metadata_database()->UpdateByFileResource( |
- *entry, |
- base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ status = metadata_database()->UpdateByFileResource(*entry); |
+ |
+ // TODO(tzik): Expand this function. |
+ DidUpdateDatabaseForUploadExistingFile(token.Pass(), status); |
} |
void LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile( |
@@ -581,12 +576,9 @@ void LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile( |
details.title() == title.AsUTF8Unsafe() && |
HasFileAsParent(details, |
remote_parent_folder_tracker_->file_id())) { |
- metadata_database()->UpdateTracker( |
- remote_file_tracker_->tracker_id(), |
- file.details(), |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ SyncStatusCode status = metadata_database()->UpdateTracker( |
+ remote_file_tracker_->tracker_id(), file.details()); |
+ SyncCompleted(token.Pass(), status); |
return; |
} |
@@ -614,11 +606,9 @@ void LocalToRemoteSyncer::DidGetRemoteMetadata( |
if (error == google_apis::HTTP_NOT_FOUND) { |
retry_on_success_ = true; |
- metadata_database()->UpdateByDeletedRemoteFile( |
- file_id, |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ SyncStatusCode status = |
+ metadata_database()->UpdateByDeletedRemoteFile(file_id); |
+ SyncCompleted(token.Pass(), status); |
return; |
} |
@@ -635,11 +625,8 @@ void LocalToRemoteSyncer::DidGetRemoteMetadata( |
} |
retry_on_success_ = true; |
- metadata_database()->UpdateByFileResource( |
- *entry, |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ status = metadata_database()->UpdateByFileResource(*entry); |
+ SyncCompleted(token.Pass(), status); |
} |
void LocalToRemoteSyncer::UploadNewFile(scoped_ptr<SyncTaskToken> token) { |
@@ -679,11 +666,9 @@ void LocalToRemoteSyncer::DidUploadNewFile( |
return; |
} |
- metadata_database()->ReplaceActiveTrackerWithNewResource( |
- remote_parent_folder_tracker_->tracker_id(), *entry, |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token))); |
+ status = metadata_database()->ReplaceActiveTrackerWithNewResource( |
+ remote_parent_folder_tracker_->tracker_id(), *entry); |
+ SyncCompleted(token.Pass(), status); |
} |
void LocalToRemoteSyncer::CreateRemoteFolder( |
@@ -717,17 +702,14 @@ void LocalToRemoteSyncer::DidCreateRemoteFolder( |
return; |
} |
+ status = SYNC_STATUS_FAILED; |
MetadataDatabase::ActivationStatus activation_status = |
metadata_database()->TryActivateTracker( |
remote_parent_folder_tracker_->tracker_id(), |
- file_id, |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(token.Pass()))); |
+ file_id, &status); |
switch (activation_status) { |
case MetadataDatabase::ACTIVATION_PENDING: |
- // The task will be finalized by the callback passed to MetadataDatabase |
- // in this case. |
+ SyncCompleted(token.Pass(), status); |
return; |
case MetadataDatabase::ACTIVATION_FAILED_ANOTHER_ACTIVE_TRACKER: |
// The activation failed due to another tracker that has another parent. |