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 d40cbb02c8a3a6a557d69918812178cd02209d21..5552fded1250982b41eb935d70da6008ebc1d900 100644 |
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
@@ -149,12 +149,20 @@ void InlineSigninHelper::OnSigninOAuthInformationAvailable( |
if (start_signin) { |
// Call OneClickSigninSyncStarter to exchange oauth code for tokens. |
// OneClickSigninSyncStarter will delete itself once the job is done. |
+ std::string continue_url_str; |
+ net::GetValueForKeyInQuery(current_url_, "continueUrl", |
+ &continue_url_str); |
+ GURL continue_url = GURL(continue_url_str); |
+ if (!continue_url.is_valid()) |
+ continue_url = GURL(); |
+ |
new OneClickSigninSyncStarter( |
profile_, browser, |
email, password_, refresh_token, |
start_mode, |
contents, |
confirmation_required, |
+ continue_url, |
base::Bind(&InlineLoginHandlerImpl::SyncStarterCallback, handler_)); |
} |
} |
@@ -199,7 +207,7 @@ void InlineLoginHandlerImpl::SetExtraInitParams(base::DictionaryValue& params) { |
// Drop the leading slash in the path. |
params.SetString("gaiaPath", |
GaiaUrls::GetInstance()->embedded_signin_url().path().substr(1)); |
-} |
+ } |
params.SetString("service", "chromiumsync"); |
params.SetString("continueUrl", |