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 be8b8720044248a403e928205334745f7d9bacfa..d626229dfc2760cdf888eda04c1b599d0c0ee335 100644 |
--- a/sync/internal_api/sync_backup_manager.cc |
+++ b/sync/internal_api/sync_backup_manager.cc |
@@ -23,6 +23,7 @@ void SyncBackupManager::Init(InitArgs* args) { |
if (SyncRollbackManagerBase::InitInternal( |
args->database_location, |
args->internal_components_factory.get(), |
+ InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED, |
args->unrecoverable_error_handler.Pass(), |
args->report_unrecoverable_error_function)) { |
GetUserShare()->directory->CollectMetaHandleCounts( |
@@ -34,10 +35,8 @@ void SyncBackupManager::Init(InitArgs* args) { |
} |
void SyncBackupManager::SaveChanges() { |
- if (initialized()) { |
+ if (initialized()) |
NormalizeEntries(); |
- GetUserShare()->directory->SaveChanges(); |
- } |
} |
SyncStatus SyncBackupManager::GetDetailedStatus() const { |
@@ -122,6 +121,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) {} |