Chromium Code Reviews| 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 cf30c5a470ecfd4a4bcab371378a7dc74c44ab21..7b403c6fea48a735b0cadc0589a3f82c83544f70 100644 |
| --- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
| +++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
| @@ -4,7 +4,6 @@ |
| #include "chrome/browser/ui/webui/signin/inline_login_handler_impl.h" |
| -#include "base/atomic_sequence_num.h" |
| #include "base/bind.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/string_number_conversions.h" |
| @@ -20,6 +19,7 @@ |
| #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/pref_names.h" |
| +#include "chrome/common/url_constants.h" |
| #include "content/public/browser/storage_partition.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/browser/web_ui.h" |
| @@ -30,13 +30,10 @@ |
| namespace { |
| -// Global SequenceNumber used for generating unique webview partition IDs. |
| -base::StaticAtomicSequenceNumber next_partition_id; |
| - |
| } // empty namespace |
| InlineLoginHandlerImpl::InlineLoginHandlerImpl() |
| - : weak_factory_(this), choose_what_to_sync_(false), partition_id_("") { |
| + : weak_factory_(this), choose_what_to_sync_(false) { |
| } |
| InlineLoginHandlerImpl::~InlineLoginHandlerImpl() {} |
| @@ -50,7 +47,7 @@ void InlineLoginHandlerImpl::RegisterMessages() { |
| } |
| void InlineLoginHandlerImpl::SetExtraInitParams(base::DictionaryValue& params) { |
| - params.SetInteger("authMode", InlineLoginHandler::kInlineAuthMode); |
| + params.SetInteger("authMode", InlineLoginHandler::kDesktopAuthMode); |
|
nasko
2014/02/14 16:48:45
nit: Why change the constant name from inline to d
Roger Tawa OOO till Jul 10th
2014/02/14 19:52:17
I'll talk to Hui about what the reason was, but I'
|
| const GURL& current_url = web_ui()->GetWebContents()->GetURL(); |
| signin::Source source = signin::GetSourceForPromoURL(current_url); |
| @@ -92,13 +89,6 @@ void InlineLoginHandlerImpl::SetExtraInitParams(base::DictionaryValue& params) { |
| net::GetValueForKeyInQuery(current_url, "readOnlyEmail", &read_only_email); |
| if (!read_only_email.empty()) |
| params.SetString("readOnlyEmail", read_only_email); |
| - |
| - net::GetValueForKeyInQuery(current_url, "partitionId", &partition_id_); |
| - if (partition_id_.empty()) { |
| - partition_id_ = |
| - "gaia-webview-" + base::IntToString(next_partition_id.GetNext()); |
| - } |
| - params.SetString("partitionId", partition_id_); |
| } |
| @@ -111,8 +101,6 @@ void InlineLoginHandlerImpl::HandleSwitchToFullTabMessage( |
| GURL main_frame_url(web_contents->GetURL()); |
| main_frame_url = net::AppendOrReplaceQueryParameter( |
| main_frame_url, "frameUrl", UTF16ToASCII(url_str)); |
| - main_frame_url = net::AppendOrReplaceQueryParameter( |
| - main_frame_url, "partitionId", partition_id_); |
| chrome::NavigateParams params( |
| Profile::FromWebUI(web_ui()), |
| net::AppendOrReplaceQueryParameter(main_frame_url, "constrained", "0"), |
| @@ -123,7 +111,7 @@ void InlineLoginHandlerImpl::HandleSwitchToFullTabMessage( |
| } |
| void InlineLoginHandlerImpl::CompleteLogin(const base::ListValue* args) { |
| - DCHECK(email_.empty() && password_.empty()); |
| + DCHECK(email_.empty() && password_.empty() && session_index_.empty()); |
| content::WebContents* contents = web_ui()->GetWebContents(); |
| const GURL& current_url = contents->GetURL(); |
| @@ -162,6 +150,10 @@ void InlineLoginHandlerImpl::CompleteLogin(const base::ListValue* args) { |
| } |
| } |
| + base::string16 session_index; |
| + dict->GetString("sessionIndex", &session_index); |
| + session_index_ = UTF16ToASCII(session_index); |
| + DCHECK(!session_index_.empty()); |
| dict->GetBoolean("chooseWhatToSync", &choose_what_to_sync_); |
| signin::Source source = signin::GetSourceForPromoURL(current_url); |
| @@ -180,13 +172,12 @@ void InlineLoginHandlerImpl::CompleteLogin(const base::ListValue* args) { |
| content::StoragePartition* partition = |
| content::BrowserContext::GetStoragePartitionForSite( |
| contents->GetBrowserContext(), |
| - GURL("chrome-guest://mfffpogegjflfpflabcdkioaeobkgjik/?" + |
| - partition_id_)); |
| + GURL(chrome::kChromeUIChromeSigninURL)); |
| auth_fetcher_.reset(new GaiaAuthFetcher(this, |
| GaiaConstants::kChromeSource, |
| partition->GetURLRequestContext())); |
| - auth_fetcher_->StartCookieForOAuthCodeExchange("0"); |
| + auth_fetcher_->StartCookieForOAuthCodeExchange(session_index_); |
| } |
| void InlineLoginHandlerImpl::OnClientOAuthCodeSuccess( |
| @@ -253,6 +244,7 @@ void InlineLoginHandlerImpl::OnClientOAuthCodeSuccess( |
| email_.clear(); |
| password_.clear(); |
| + session_index_.clear(); |
| web_ui()->CallJavascriptFunction("inline.login.closeDialog"); |
| } |
| @@ -276,6 +268,7 @@ void InlineLoginHandlerImpl::HandleLoginError(const std::string& error_msg) { |
| email_.clear(); |
| password_.clear(); |
| + session_index_.clear(); |
| } |
| void InlineLoginHandlerImpl::SyncStarterCallback( |