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..05cb5049b9e7071f1baaf85b6f4c612ddaa40293 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::DidUpdateMetadataForUpload, |
kinuko
2013/12/02 09:05:39
We have DidUpdateDatabaseForUpload for UploadNewFi
tzik
2013/12/02 15:30:50
Renamed.
Do DidUpdateDatabaseForUpload{NewFile,Exi
|
+ weak_ptr_factory_.GetWeakPtr(), |
+ callback)); |
+} |
+ |
+void LocalToRemoteSyncer::DidUpdateMetadataForUpload( |
+ 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(); |
kinuko
2013/12/02 09:40:30
Hmm, I hit here in my local testing.
tzik
2013/12/02 15:30:50
...
That's broken, reversed.
Fixed! Thanks!
|
+ callback.Run(SYNC_STATUS_FAILED); |
+ return; |
+ } |
+ |
+ metadata_database()->UpdateTracker( |
+ remote_file_tracker_->tracker_id(), |
+ file.details(), |
+ callback); |
} |
void LocalToRemoteSyncer::UpdateRemoteMetadata( |