Index: chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
index 8734185934a49717b00af365065250608733fe0b..3ff1853c63436d364111000ee1bc4e4d31a807c3 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc |
@@ -434,6 +434,22 @@ void SyncEngine::DidProcessRemoteChange(RemoteToLocalSyncer* syncer, |
void SyncEngine::DidApplyLocalChange(LocalToRemoteSyncer* syncer, |
const SyncStatusCallback& callback, |
SyncStatusCode status) { |
+ if ((status == SYNC_STATUS_OK || status == SYNC_STATUS_RETRY) && |
+ syncer->url().is_valid() && |
+ syncer->sync_action() != SYNC_ACTION_NONE) { |
+ fileapi::FileSystemURL updated_url = syncer->url(); |
+ if (!syncer->target_path().empty()) { |
+ updated_url = CreateSyncableFileSystemURL(syncer->url().origin(), |
+ syncer->target_path()); |
+ } |
+ FOR_EACH_OBSERVER(FileStatusObserver, |
+ file_status_observers_, |
+ OnFileStatusChanged(updated_url, |
+ SYNC_FILE_STATUS_SYNCED, |
+ syncer->sync_action(), |
+ SYNC_DIRECTION_LOCAL_TO_REMOTE)); |
+ } |
+ |
if (status != SYNC_STATUS_OK && |
status != SYNC_STATUS_NO_CHANGE_TO_SYNC) { |
callback.Run(status); |