Index: chrome/browser/sync/profile_sync_service.cc |
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc |
index 26f089f8d11d2d7cb7e35f8e47934e0096d0d991..84af84ff62bb8a396a11cb5ecb1ff45b7582f15a 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -555,11 +555,16 @@ void ProfileSyncService::OnUnrecoverableError( |
void ProfileSyncService::OnBackendInitialized( |
const WeakHandle<JsBackend>& js_backend, bool success) { |
+ if (HasSyncSetupCompleted()) { |
+ UMA_HISTOGRAM_BOOLEAN("Sync.FirstBackendInitializeSuccess", success); |
+ } else { |
+ UMA_HISTOGRAM_BOOLEAN("Sync.RestoreBackendInitializeSuccess", success); |
+ } |
+ |
if (!success) { |
- // If backend initialization failed, abort. We only want to blow away |
- // state (DBs, etc) if this was a first-time scenario that failed. |
- wizard_.Step(SyncSetupWizard::FATAL_ERROR); |
- Shutdown(!HasSyncSetupCompleted()); |
+ // Something went unexpectedly wrong. Play it safe: nuke our current state |
+ // and prepare ourselves to try again later. |
+ DisableForUser(); |
return; |
} |