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

Unified Diff: chrome/browser/ui/webui/signin/inline_login_handler_impl.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: 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
index d9ed6882a2324458d01520760ef12797b0cd1eb0..632dd5f7302c4e018ac7c8088510e704e9144bd3 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
@@ -48,7 +48,8 @@
namespace {
-class InlineSigninHelper : public GaiaAuthConsumer {
+class InlineSigninHelper : public GaiaAuthConsumer,
+ public MergeSessionHelper::Observer {
public:
InlineSigninHelper(
base::WeakPtr<InlineLoginHandlerImpl> handler,
@@ -69,6 +70,10 @@ class InlineSigninHelper : public GaiaAuthConsumer {
void OnClientOAuthFailure(const GoogleServiceAuthError& error)
override;
+ // Overridden from MergeSessionHelper::Observer.
+ void MergeSessionCompleted(const std::string& account_id,
+ const GoogleServiceAuthError& error) override;
+
GaiaAuthFetcher gaia_auth_fetcher_;
base::WeakPtr<InlineLoginHandlerImpl> handler_;
Profile* profile_;
@@ -79,6 +84,8 @@ class InlineSigninHelper : public GaiaAuthConsumer {
std::string session_index_;
bool choose_what_to_sync_;
bool confirm_untrusted_signin_;
+ // Helper to merge signed in account into the content area.
+ scoped_ptr<MergeSessionHelper> merge_session_helper_;
DISALLOW_COPY_AND_ASSIGN(InlineSigninHelper);
};
@@ -145,8 +152,9 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) {
if (source == signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT ||
source == signin_metrics::SOURCE_REAUTH) {
- ProfileOAuth2TokenServiceFactory::GetForProfile(profile_)->
- UpdateCredentials(account_id, result.refresh_token);
+ ProfileOAuth2TokenService* token_service =
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
+ token_service->UpdateCredentials(account_id, result.refresh_token);
if (signin::IsAutoCloseEnabledInURL(current_url_)) {
// Close the gaia sign in tab via a task to make sure we aren't in the
@@ -157,6 +165,17 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) {
handler_,
signin::ShouldShowAccountManagement(current_url_)));
}
+
+ SigninClient* signin_client =
+ ChromeSigninClientFactory::GetForProfile(profile_);
+ if (signin_client->ShouldMergeSigninCredentialsIntoCookieJar()) {
+ merge_session_helper_.reset(new MergeSessionHelper(
+ token_service, GaiaConstants::kChromeSource,
+ signin_client->GetURLRequestContext(), NULL));
+ merge_session_helper_->LogIn(account_id);
+ } else {
+ base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
+ }
Roger Tawa OOO till Jul 10th 2015/02/12 14:54:38 As discussed offline, it would be better to refact
Mike Lerman 2015/02/13 19:17:06 Done.
} else {
ProfileSyncService* sync_service =
ProfileSyncServiceFactory::GetForProfile(profile_);
@@ -214,9 +233,8 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) {
signin::GetNextPageURLForPromoURL(current_url_),
base::Bind(&InlineLoginHandlerImpl::SyncStarterCallback, handler_));
}
+ base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}
-
- base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}
void InlineSigninHelper::OnClientOAuthFailure(
@@ -231,6 +249,12 @@ void InlineSigninHelper::OnClientOAuthFailure(
base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}
+void InlineSigninHelper::MergeSessionCompleted(
+ const std::string& account_id,
+ const GoogleServiceAuthError& error) {
+ base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
+}
+
} // namespace
InlineLoginHandlerImpl::InlineLoginHandlerImpl()
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698