Index: chrome/browser/signin/signin_tracker.cc |
diff --git a/chrome/browser/signin/signin_tracker.cc b/chrome/browser/signin/signin_tracker.cc |
index 12a79c3a3c62b381d9e1a1386a14208b30eac36b..80518298292474498aaa772e0a51a3b14a471c63 100644 |
--- a/chrome/browser/signin/signin_tracker.cc |
+++ b/chrome/browser/signin/signin_tracker.cc |
@@ -141,15 +141,11 @@ void SigninTracker::HandleServiceStateChange() { |
// been cleared yet). |
return; |
} |
- // If we haven't loaded all our service tokens yet, just exit (we'll be called |
- // again when another token is loaded, or will transition to SigninFailed if |
- // the loading fails). |
- if (!AreServiceTokensLoaded(profile_)) |
- return; |
+ |
if (!AreServicesSignedIn(profile_)) { |
state_ = WAITING_FOR_GAIA_VALIDATION; |
observer_->SigninFailed(service->GetAuthError()); |
- } else if (service->sync_initialized()) { |
+ } else if (service->sync_initialized() && AreServiceTokensLoaded(profile_)) { |
state_ = SIGNIN_COMPLETE; |
observer_->SigninSuccess(); |
} |