| 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 0815128176acbf2a376a0959b6b5ebb6d73d8820..c18469ceb7503d3396af6d417f895af99d35e7ed 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
|
| @@ -186,11 +186,9 @@ void LocalToRemoteSyncer::RunExclusive(scoped_ptr<SyncTaskToken> token) {
|
| remote_file_tracker_ = active_ancestor_tracker.Pass();
|
| target_path_ = active_ancestor_path;
|
| token->RecordLog("Detected non-folder file in its path.");
|
| - DeleteRemoteFile(base::Bind(
|
| - &LocalToRemoteSyncer::DidDeleteForCreateFolder,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - base::Bind(&LocalToRemoteSyncer::SyncCompleted,
|
| - weak_ptr_factory_.GetWeakPtr(), base::Passed(&token))));
|
| + DeleteRemoteFile(base::Bind(&LocalToRemoteSyncer::DidDeleteForCreateFolder,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + base::Passed(&token)));
|
| return;
|
| }
|
|
|
| @@ -357,9 +355,7 @@ void LocalToRemoteSyncer::HandleExistingRemoteFile(
|
| // the remote file and create a remote folder.
|
| DeleteRemoteFile(base::Bind(&LocalToRemoteSyncer::DidDeleteForCreateFolder,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| - base::Bind(&LocalToRemoteSyncer::SyncCompleted,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - base::Passed(&token))));
|
| + base::Passed(&token)));
|
| return;
|
| }
|
|
|
| @@ -578,20 +574,26 @@ void LocalToRemoteSyncer::DidDeleteForUploadNewFile(
|
| }
|
|
|
| void LocalToRemoteSyncer::DidDeleteForCreateFolder(
|
| - const SyncStatusCallback& callback,
|
| + scoped_ptr<SyncTaskToken> token,
|
| SyncStatusCode status) {
|
| if (status == SYNC_STATUS_HAS_CONFLICT) {
|
| - UpdateRemoteMetadata(remote_file_tracker_->file_id(),
|
| - base::Bind(&ReturnRetryOnSuccess, callback));
|
| + UpdateRemoteMetadata(
|
| + remote_file_tracker_->file_id(),
|
| + base::Bind(&ReturnRetryOnSuccess,
|
| + base::Bind(&LocalToRemoteSyncer::SyncCompleted,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + base::Passed(&token))));
|
| return;
|
| }
|
|
|
| if (status != SYNC_STATUS_OK) {
|
| - callback.Run(status);
|
| + SyncCompleted(token.Pass(), status);
|
| return;
|
| }
|
|
|
| - CreateRemoteFolder(callback);
|
| + CreateRemoteFolder(base::Bind(&LocalToRemoteSyncer::SyncCompleted,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + base::Passed(&token)));
|
| }
|
|
|
| void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) {
|
|
|