Index: chrome/browser/signin/signin_manager.cc |
diff --git a/chrome/browser/signin/signin_manager.cc b/chrome/browser/signin/signin_manager.cc |
index a45318f877a8392dd2a9982fcf912793df47b9ae..47c0c85d78a503bbb6b64f288ab189628c966bd5 100644 |
--- a/chrome/browser/signin/signin_manager.cc |
+++ b/chrome/browser/signin/signin_manager.cc |
@@ -68,8 +68,12 @@ const std::string& SigninManager::GetAuthenticatedUsername() { |
} |
void SigninManager::SetAuthenticatedUsername(const std::string& username) { |
- DCHECK(authenticated_username_.empty() || |
- username == authenticated_username_); |
+ if (!authenticated_username_.empty()) { |
+ DLOG_IF(ERROR, username != authenticated_username_) << |
+ "Tried to change the authenticated username to something different: " << |
+ "Current: " << authenticated_username_ << ", New: " << username; |
+ return; |
+ } |
authenticated_username_ = username; |
// TODO(tim): We could go further in ensuring kGoogleServicesUsername and |
// authenticated_username_ are consistent once established (e.g. remove |
@@ -192,6 +196,10 @@ const GoogleServiceAuthError& SigninManager::GetLoginAuthError() const { |
return last_login_auth_error_; |
} |
+bool SigninManager::AuthInProgress() const { |
+ return !possibly_invalid_username_.empty(); |
+} |
+ |
void SigninManager::OnClientLoginSuccess(const ClientLoginResult& result) { |
DCHECK(!browser_sync::IsUsingOAuth()); |
last_result_ = result; |
@@ -204,10 +212,8 @@ void SigninManager::OnGetUserInfoSuccess(const std::string& key, |
const std::string& value) { |
DCHECK(!browser_sync::IsUsingOAuth()); |
DCHECK(key == kGetInfoEmailKey); |
- DCHECK(authenticated_username_.empty() || authenticated_username_ == value); |
- |
last_login_auth_error_ = GoogleServiceAuthError::None(); |
- authenticated_username_ = value; |
+ SetAuthenticatedUsername(value); |
possibly_invalid_username_.clear(); |
profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
authenticated_username_); |