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 ab0352404cb8797d98b1503de77a37b5008c8aa6..a5942246a9f4dcbe4951015f54c02b174dd454ba 100644 |
| --- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
| +++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc |
| @@ -74,7 +74,7 @@ bool IsSystemProfile(Profile* profile) { |
| } |
| void RedirectToNtpOrAppsPage(content::WebContents* contents, |
| - signin_metrics::Source source) { |
| + signin_metrics::AccessPoint access_point) { |
| // Do nothing if a navigation is pending, since this call can be triggered |
| // from DidStartLoading. This avoids deleting the pending entry while we are |
| // still navigating to it. See crbug/346632. |
| @@ -83,8 +83,9 @@ void RedirectToNtpOrAppsPage(content::WebContents* contents, |
| VLOG(1) << "RedirectToNtpOrAppsPage"; |
| // Redirect to NTP/Apps page and display a confirmation bubble |
| - GURL url(source == signin_metrics::SOURCE_APPS_PAGE_LINK ? |
| - chrome::kChromeUIAppsURL : chrome::kChromeUINewTabURL); |
| + GURL url(access_point == signin_metrics::ACCESS_POINT_APPS_PAGE_LINK |
| + ? chrome::kChromeUIAppsURL |
| + : chrome::kChromeUINewTabURL); |
| content::OpenURLParams params(url, |
| content::Referrer(), |
| CURRENT_TAB, |
| @@ -93,10 +94,11 @@ void RedirectToNtpOrAppsPage(content::WebContents* contents, |
| contents->OpenURL(params); |
| } |
| -void RedirectToNtpOrAppsPageIfNecessary(content::WebContents* contents, |
| - signin_metrics::Source source) { |
| - if (source != signin_metrics::SOURCE_SETTINGS) |
| - RedirectToNtpOrAppsPage(contents, source); |
| +void RedirectToNtpOrAppsPageIfNecessary( |
| + content::WebContents* contents, |
| + signin_metrics::AccessPoint access_point) { |
| + if (access_point != signin_metrics::ACCESS_POINT_SETTINGS) |
| + RedirectToNtpOrAppsPage(contents, access_point); |
| } |
| class ConfirmEmailDialogDelegate : public TabModalConfirmDialogDelegate { |
| @@ -272,21 +274,28 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) { |
| AccountTrackerServiceFactory::GetForProfile(profile_) |
| ->SeedAccountInfo(gaia_id_, email_); |
| - signin_metrics::Source source = signin::GetSourceForPromoURL(current_url_); |
| + signin_metrics::AccessPoint access_point = |
| + signin::GetAccessPointForPromoURL(current_url_); |
| + signin_metrics::LogSigninAccessPoint(access_point, true); |
| + |
| + signin_metrics::Reason reason = |
| + signin::GetSigninReasonForPromoURL(current_url_); |
| + signin_metrics::LogSigninReason(reason); |
|
Roger Tawa OOO till Jul 10th
2015/12/02 20:33:49
By this point, gaia sign in completed successfully
gogerald1
2015/12/03 17:49:03
Do it in one_click_signin_sync_starter
|
| SigninManager* signin_manager = SigninManagerFactory::GetForProfile(profile_); |
| std::string primary_email = |
| signin_manager->GetAuthenticatedAccountInfo().email; |
| if (gaia::AreEmailsSame(email_, primary_email) && |
| - source == signin_metrics::SOURCE_REAUTH && |
| - switches::IsNewProfileManagement() && |
| - !password_.empty() && |
| + (reason == signin_metrics::REASON_REAUTHENTICATION || |
| + reason == signin_metrics::REASON_UNLOCK) && |
| + switches::IsNewProfileManagement() && !password_.empty() && |
| profiles::IsLockAvailable(profile_)) { |
| LocalAuth::SetLocalAuthCredentials(profile_, password_); |
| } |
| - if (source == signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT || |
| - source == signin_metrics::SOURCE_REAUTH) { |
| + if (reason == signin_metrics::REASON_REAUTHENTICATION || |
| + reason == signin_metrics::REASON_UNLOCK || |
| + reason == signin_metrics::REASON_ADD_SECONDARY_ACCOUNT) { |
| ProfileOAuth2TokenServiceFactory::GetForProfile(profile_)-> |
| UpdateCredentials(account_id, result.refresh_token); |
| @@ -299,7 +308,8 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) { |
| signin::ShouldShowAccountManagement(current_url_))); |
| } |
| - if (source == signin_metrics::SOURCE_REAUTH) |
| + if (reason == signin_metrics::REASON_REAUTHENTICATION || |
| + reason == signin_metrics::REASON_UNLOCK) |
|
Roger Tawa OOO till Jul 10th
2015/12/02 20:33:48
Need { and } for if.
gogerald1
2015/12/03 17:49:03
Done.
|
| signin_manager->MergeSigninCredentialIntoCookieJar(); |
| } else { |
| ProfileSyncService* sync_service = |
| @@ -309,7 +319,8 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) { |
| OneClickSigninSyncStarter::StartSyncMode start_mode = |
| OneClickSigninSyncStarter::CONFIRM_SYNC_SETTINGS_FIRST; |
| - if (source == signin_metrics::SOURCE_SETTINGS || choose_what_to_sync_) { |
| + if (access_point == signin_metrics::ACCESS_POINT_SETTINGS || |
| + choose_what_to_sync_) { |
| bool show_settings_without_configure = |
| error_controller->HasError() && |
| sync_service && |
| @@ -324,8 +335,8 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) { |
| OneClickSigninSyncStarter::CONFIRM_UNTRUSTED_SIGNIN : |
| OneClickSigninSyncStarter::CONFIRM_AFTER_SIGNIN; |
| - bool start_signin = !HandleCrossAccountError(result.refresh_token, source, |
| - confirmation_required, start_mode); |
| + bool start_signin = !HandleCrossAccountError( |
| + result.refresh_token, confirmation_required, start_mode); |
| if (start_signin) { |
| CreateSyncStarter(browser, |
| contents, |
| @@ -358,7 +369,6 @@ void InlineSigninHelper::CreateSyncStarter( |
| bool InlineSigninHelper::HandleCrossAccountError( |
| const std::string& refresh_token, |
| - signin_metrics::Source source, |
| OneClickSigninSyncStarter::ConfirmationRequired confirmation_required, |
| OneClickSigninSyncStarter::StartSyncMode start_mode) { |
| std::string last_email = |
| @@ -380,7 +390,6 @@ bool InlineSigninHelper::HandleCrossAccountError( |
| base::Unretained(this), |
| web_contents, |
| refresh_token, |
| - source, |
| confirmation_required, |
| start_mode)); |
| return true; |
| @@ -389,7 +398,6 @@ bool InlineSigninHelper::HandleCrossAccountError( |
| void InlineSigninHelper::ConfirmEmailAction( |
| content::WebContents* web_contents, |
| const std::string& refresh_token, |
| - signin_metrics::Source source, |
| OneClickSigninSyncStarter::ConfirmationRequired confirmation_required, |
| OneClickSigninSyncStarter::StartSyncMode start_mode, |
| InlineSigninHelper::Action action) { |
| @@ -559,7 +567,8 @@ void InlineLoginHandlerImpl::SetExtraInitParams(base::DictionaryValue& params) { |
| content::WebContents* contents = web_ui()->GetWebContents(); |
| const GURL& current_url = contents->GetURL(); |
| - signin_metrics::Source source = signin::GetSourceForPromoURL(current_url); |
| + signin_metrics::Reason reason = |
| + signin::GetSigninReasonForPromoURL(current_url); |
| std::string is_constrained; |
| net::GetValueForKeyInQuery(current_url, "constrained", &is_constrained); |
| @@ -576,11 +585,12 @@ void InlineLoginHandlerImpl::SetExtraInitParams(base::DictionaryValue& params) { |
| params.SetString("gaiaPath", url.path().substr(1)); |
| std::string flow; |
| - switch (source) { |
| - case signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT: |
| + switch (reason) { |
| + case signin_metrics::REASON_ADD_SECONDARY_ACCOUNT: |
| flow = "addaccount"; |
| break; |
| - case signin_metrics::SOURCE_REAUTH: |
| + case signin_metrics::REASON_REAUTHENTICATION: |
| + case signin_metrics::REASON_UNLOCK: |
| flow = "reauth"; |
| break; |
| default: |
| @@ -733,20 +743,25 @@ void InlineLoginHandlerImpl::FinishCompleteLogin( |
| } |
| } |
| - signin_metrics::Source source = signin::GetSourceForPromoURL(params.url); |
| + signin_metrics::AccessPoint access_point = |
| + signin::GetAccessPointForPromoURL(params.url); |
| + signin_metrics::Reason reason = |
| + signin::GetSigninReasonForPromoURL(params.url); |
| LogHistogramValue(signin_metrics::HISTOGRAM_ACCEPTED); |
| bool switch_to_advanced = |
| - params.choose_what_to_sync && (source != signin_metrics::SOURCE_SETTINGS); |
| + params.choose_what_to_sync && |
| + (access_point != signin_metrics::ACCESS_POINT_SETTINGS); |
| LogHistogramValue( |
| switch_to_advanced ? signin_metrics::HISTOGRAM_WITH_ADVANCED : |
| signin_metrics::HISTOGRAM_WITH_DEFAULTS); |
| CanOfferFor can_offer_for = CAN_OFFER_FOR_ALL; |
| - switch (source) { |
| - case signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT: |
| + switch (reason) { |
| + case signin_metrics::REASON_ADD_SECONDARY_ACCOUNT: |
| can_offer_for = CAN_OFFER_FOR_SECONDARY_ACCOUNT; |
| break; |
| - case signin_metrics::SOURCE_REAUTH: { |
| + case signin_metrics::REASON_REAUTHENTICATION: |
| + case signin_metrics::REASON_UNLOCK: { |
| std::string primary_username = |
| SigninManagerFactory::GetForProfile(profile) |
| ->GetAuthenticatedAccountInfo() |
| @@ -842,11 +857,12 @@ void InlineLoginHandlerImpl::SyncStarterCallback( |
| } |
| const GURL& current_url = contents->GetLastCommittedURL(); |
| - signin_metrics::Source source = signin::GetSourceForPromoURL(current_url); |
| + signin_metrics::AccessPoint access_point = |
| + signin::GetAccessPointForPromoURL(current_url); |
| bool auto_close = signin::IsAutoCloseEnabledInURL(current_url); |
| if (result == OneClickSigninSyncStarter::SYNC_SETUP_FAILURE) { |
| - RedirectToNtpOrAppsPage(contents, source); |
| + RedirectToNtpOrAppsPage(contents, access_point); |
| } else if (auto_close) { |
| base::ThreadTaskRunnerHandle::Get()->PostTask( |
| FROM_HERE, |
| @@ -854,7 +870,7 @@ void InlineLoginHandlerImpl::SyncStarterCallback( |
| weak_factory_.GetWeakPtr(), |
| signin::ShouldShowAccountManagement(current_url))); |
| } else { |
| - RedirectToNtpOrAppsPageIfNecessary(contents, source); |
| + RedirectToNtpOrAppsPageIfNecessary(contents, access_point); |
| } |
| } |
| @@ -873,8 +889,9 @@ void InlineLoginHandlerImpl::CloseTab(bool show_account_management) { |
| if (show_account_management) { |
| browser->window()->ShowAvatarBubbleFromAvatarButton( |
| - BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT, |
| - signin::ManageAccountsParams()); |
| + BrowserWindow::AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT, |
| + signin::ManageAccountsParams(), |
| + signin_metrics::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN); |
| } |
| } |
| } |