| 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 e0dff9d9cdb8be56ace1626ec14e60e00ece3865..3a64321edd831da9475317cb16da56f1916d72d8 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
|
| @@ -382,7 +382,7 @@ void LocalToRemoteSyncer::DidUploadExistingFile(
|
| const SyncStatusCallback& callback,
|
| google_apis::GDataErrorCode error,
|
| const GURL&,
|
| - scoped_ptr<google_apis::ResourceEntry>) {
|
| + scoped_ptr<google_apis::ResourceEntry> entry) {
|
| if (error == google_apis::HTTP_PRECONDITION) {
|
| // The remote file has unfetched remote change. Fetch latest metadata and
|
| // update database with it.
|
| @@ -392,7 +392,34 @@ void LocalToRemoteSyncer::DidUploadExistingFile(
|
| return;
|
| }
|
|
|
| - callback.Run(GDataErrorCodeToSyncStatusCode(error));
|
| + metadata_database()->UpdateByFileResource(
|
| + *drive::util::ConvertResourceEntryToFileResource(*entry),
|
| + base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + callback));
|
| +}
|
| +
|
| +void LocalToRemoteSyncer::DidUpdateDatabaseForUploadExistingFile(
|
| + const SyncStatusCallback& callback,
|
| + SyncStatusCode status) {
|
| + if (status != SYNC_STATUS_OK) {
|
| + callback.Run(status);
|
| + return;
|
| + }
|
| +
|
| + FileMetadata file;
|
| + bool should_success = metadata_database()->FindFileByFileID(
|
| + remote_file_tracker_->file_id(), &file);
|
| + if (!should_success) {
|
| + NOTREACHED();
|
| + callback.Run(SYNC_STATUS_FAILED);
|
| + return;
|
| + }
|
| +
|
| + metadata_database()->UpdateTracker(
|
| + remote_file_tracker_->tracker_id(),
|
| + file.details(),
|
| + callback);
|
| }
|
|
|
| void LocalToRemoteSyncer::UpdateRemoteMetadata(
|
| @@ -476,12 +503,12 @@ void LocalToRemoteSyncer::DidUploadNewFile(
|
| // MetadataDatabase.
|
| metadata_database()->UpdateByFileResource(
|
| *drive::util::ConvertResourceEntryToFileResource(*entry),
|
| - base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUpload,
|
| + base::Bind(&LocalToRemoteSyncer::DidUpdateDatabaseForUploadNewFile,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| callback, entry->resource_id()));
|
| }
|
|
|
| -void LocalToRemoteSyncer::DidUpdateDatabaseForUpload(
|
| +void LocalToRemoteSyncer::DidUpdateDatabaseForUploadNewFile(
|
| const SyncStatusCallback& callback,
|
| const std::string& file_id,
|
| SyncStatusCode status) {
|
|
|