Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6704)

Unified Diff: chrome/browser/sync/profile_sync_service.cc

Issue 11348220: sync: centralize sync startup decisions in TryStart. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: take 2 Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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: {

Powered by Google App Engine
This is Rietveld 408576698