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

Unified Diff: components/signin/core/browser/signin_manager.cc

Issue 913123005: Reauth causes a MergeSession, so the cookie jar gets re-authed too. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pre-review checkup Created 5 years, 10 months 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
« no previous file with comments | « components/signin/core/browser/signin_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/signin/core/browser/signin_manager.cc
diff --git a/components/signin/core/browser/signin_manager.cc b/components/signin/core/browser/signin_manager.cc
index 9525df0037e54c70d92eaf93543a2acc5022d1be..0875b9a3461b2b96009f5d1cf367f9c8fc289f71 100644
--- a/components/signin/core/browser/signin_manager.cc
+++ b/components/signin/core/browser/signin_manager.cc
@@ -356,24 +356,35 @@ void SigninManager::DisableOneClickSignIn(PrefService* prefs) {
prefs->SetBoolean(prefs::kReverseAutologinEnabled, false);
}
+void SigninManager::MergeSigninCredentialIntoCookieJar() {
+ if (!client_->ShouldMergeSigninCredentialsIntoCookieJar())
+ return;
+
+ if (!IsAuthenticated())
+ return;
+
+ // Don't execute 2 MergeSessionHelpers. New account takes priority.
+ if (merge_session_helper_.get() && merge_session_helper_->is_running())
+ merge_session_helper_->CancelAll();
+
+ merge_session_helper_.reset(new MergeSessionHelper(
+ token_service_, GaiaConstants::kChromeSource,
+ client_->GetURLRequestContext(), NULL));
+
+ merge_session_helper_->LogIn(GetAuthenticatedAccountId());
+}
+
void SigninManager::CompletePendingSignin() {
DCHECK(!possibly_invalid_username_.empty());
OnSignedIn(possibly_invalid_username_);
- if (client_->ShouldMergeSigninCredentialsIntoCookieJar()) {
- merge_session_helper_.reset(new MergeSessionHelper(
- token_service_, GaiaConstants::kChromeSource,
- client_->GetURLRequestContext(), NULL));
- }
-
DCHECK(!temp_refresh_token_.empty());
DCHECK(IsAuthenticated());
- std::string account_id = GetAuthenticatedAccountId();
- token_service_->UpdateCredentials(account_id, temp_refresh_token_);
+ token_service_->UpdateCredentials(GetAuthenticatedAccountId(),
+ temp_refresh_token_);
temp_refresh_token_.clear();
- if (client_->ShouldMergeSigninCredentialsIntoCookieJar())
- merge_session_helper_->LogIn(account_id);
+ MergeSigninCredentialIntoCookieJar();
}
void SigninManager::OnExternalSigninCompleted(const std::string& username) {
« no previous file with comments | « components/signin/core/browser/signin_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698