| 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) {
|
|
|