Index: sync/internal_api/sync_backup_manager.cc |
diff --git a/sync/internal_api/sync_backup_manager.cc b/sync/internal_api/sync_backup_manager.cc |
index 0e71f3b7de51b940581c102092fe70335001bcc2..dbcd43561327e3cf2961b7464241e8bb942407fb 100644 |
--- a/sync/internal_api/sync_backup_manager.cc |
+++ b/sync/internal_api/sync_backup_manager.cc |
@@ -39,6 +39,7 @@ void SyncBackupManager::Init( |
if (SyncRollbackManagerBase::InitInternal( |
database_location, |
internal_components_factory, |
+ InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED, |
unrecoverable_error_handler.Pass(), |
report_unrecoverable_error_function)) { |
GetUserShare()->directory->CollectMetaHandleCounts( |
@@ -50,10 +51,8 @@ void SyncBackupManager::Init( |
} |
void SyncBackupManager::SaveChanges() { |
- if (initialized()) { |
+ if (initialized()) |
NormalizeEntries(); |
- GetUserShare()->directory->SaveChanges(); |
- } |
} |
SyncStatus SyncBackupManager::GetDetailedStatus() const { |
@@ -138,6 +137,15 @@ void SyncBackupManager::HideSyncPreference(ModelType type) { |
} |
} |
+void SyncBackupManager::ShutdownOnSyncThread(ShutdownReason reason) { |
+ if (reason == SWITCH_MODE_SYNC) { |
+ NormalizeEntries(); |
+ GetUserShare()->directory->SaveChanges(); |
+ } |
+ |
+ SyncRollbackManagerBase::ShutdownOnSyncThread(reason); |
+} |
+ |
void SyncBackupManager::RegisterDirectoryTypeDebugInfoObserver( |
syncer::TypeDebugInfoObserver* observer) {} |