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 c967919f021ec791b05260736af5c1fd35361a3f..d7a0b04696e0056afc3c099d32cb8b63dc84b03d 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 |
@@ -335,15 +335,16 @@ void LocalToRemoteSyncer::DidDeleteRemoteFile( |
google_apis::GDataErrorCode error) { |
if (error != google_apis::HTTP_SUCCESS && |
error != google_apis::HTTP_NOT_FOUND && |
- error != google_apis::HTTP_PRECONDITION) { |
+ error != google_apis::HTTP_PRECONDITION && |
+ error != google_apis::HTTP_CONFLICT) { |
callback.Run(GDataErrorCodeToSyncStatusCode(error)); |
return; |
} |
// Handle NOT_FOUND case as SUCCESS case. |
- // For PRECONDITION case, the remote file is modified since the last sync |
- // completed. As our policy for deletion-modification conflict resolution, |
- // ignore the local deletion. |
+ // For PRECONDITION / CONFLICT case, the remote file is modified since the |
+ // last sync completed. As our policy for deletion-modification conflict |
+ // resolution, ignore the local deletion. |
callback.Run(SYNC_STATUS_OK); |
} |
@@ -386,7 +387,8 @@ void LocalToRemoteSyncer::DidUploadExistingFile( |
google_apis::GDataErrorCode error, |
const GURL&, |
scoped_ptr<google_apis::ResourceEntry> entry) { |
- if (error == google_apis::HTTP_PRECONDITION) { |
+ if (error == google_apis::HTTP_PRECONDITION || |
+ error == google_apis::HTTP_CONFLICT) { |
// The remote file has unfetched remote change. Fetch latest metadata and |
// update database with it. |
// TODO(tzik): Consider adding local side low-priority dirtiness handling to |