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 9b8e922e9d28ddcc8dfe68a01b833e05e18ef0b0..0573824044711f645060d36d4b77d44e0f283ad6 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -271,7 +271,7 @@ void ProfileSyncService::TryStart() { |
// loaded, and we don't want to generate spurious auth errors. |
if (IsSyncTokenAvailable() || |
(!auto_start_enabled_ && token_service->TokensLoadedFromDB())) { |
- if (HasSyncSetupCompleted() || auto_start_enabled_) { |
+ if (HasSyncSetupCompleted() || setup_in_progress_ || auto_start_enabled_) { |
Nicolas Zea
2012/11/29 19:43:08
Presumably this is necessary for when we bring up
tim (not reviewing)
2012/11/29 21:00:34
Correct! Added comment.
|
// If sync setup has completed we always start the backend. |
// If autostart is enabled, but we haven't completed sync setup, we try to |
// start sync anyway, since it's possible we crashed/shutdown after |
@@ -1716,11 +1716,9 @@ void ProfileSyncService::OnSyncManagedPrefChange(bool is_sync_managed) { |
NotifyObservers(); |
if (is_sync_managed) { |
DisableForUser(); |
- } else if (HasSyncSetupCompleted() && |
- IsSyncEnabledAndLoggedIn() && |
- IsSyncTokenAvailable()) { |
+ } else { |
// Previously-configured sync has been re-enabled, so start sync now. |
- StartUp(); |
+ TryStart(); |
} |
} |
@@ -1771,34 +1769,19 @@ void ProfileSyncService::Observe(int type, |
const TokenService::TokenAvailableDetails& token_details = |
*(content::Details<const TokenService::TokenAvailableDetails>( |
details).ptr()); |
- if (IsTokenServiceRelevant(token_details.service()) && |
- IsSyncEnabledAndLoggedIn() && |
- IsSyncTokenAvailable()) { |
- if (backend_initialized_) |
- backend_->UpdateCredentials(GetCredentials()); |
- else |
- StartUp(); |
- } |
- break; |
- } |
+ if (!IsTokenServiceRelevant(token_details.service())) |
+ break; |
+ } // Fall through. |
case chrome::NOTIFICATION_TOKEN_LOADING_FINISHED: { |
// This notification gets fired when TokenService loads the tokens |
// from storage. |
- if (IsSyncEnabledAndLoggedIn()) { |
- // Don't start up sync and generate an auth error on auto_start |
- // platforms as they have their own way to resolve TokenService errors. |
- // (crbug.com/128592). |
- if (auto_start_enabled_ && !IsSyncTokenAvailable()) |
- break; |
- |
- // Initialize the backend if sync is enabled. If the sync token was |
- // not loaded, GetCredentials() will generate invalid credentials to |
- // cause the backend to generate an auth error (crbug.com/121755). |
- if (backend_initialized_) |
- backend_->UpdateCredentials(GetCredentials()); |
- else |
- StartUp(); |
- } |
+ // Initialize the backend if sync is enabled. If the sync token was |
+ // not loaded, GetCredentials() will generate invalid credentials to |
+ // cause the backend to generate an auth error (crbug.com/121755). |
+ if (backend_initialized_) |
+ backend_->UpdateCredentials(GetCredentials()); |
+ else |
+ TryStart(); |
break; |
} |
default: { |