| 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.
|
|
|