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

Unified Diff: chrome/browser/ui/webui/signin/inline_login_handler_impl.cc

Issue 1473543002: Implement newly designed sign-in related histograms for desktop platorms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 5 years 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
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 9ec70e8788a55d4d0fa92ae77d77b1f4149332b3..350905e92a3fe2876c84266882eec3ab55911204 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,10 @@ 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::AccessPoint::ACCESS_POINT_APPS_PAGE_LINK
+ ? chrome::kChromeUIAppsURL
+ : chrome::kChromeUINewTabURL);
content::OpenURLParams params(url,
content::Referrer(),
CURRENT_TAB,
@@ -93,10 +95,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::AccessPoint::ACCESS_POINT_SETTINGS)
+ RedirectToNtpOrAppsPage(contents, access_point);
}
class ConfirmEmailDialogDelegate : public TabModalConfirmDialogDelegate {
@@ -272,21 +275,25 @@ 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::Reason reason =
+ signin::GetSigninReasonForPromoURL(current_url_);
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::REASON_REAUTHENTICATION ||
+ reason == signin_metrics::Reason::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::REASON_REAUTHENTICATION ||
+ reason == signin_metrics::Reason::REASON_UNLOCK ||
+ reason == signin_metrics::Reason::REASON_ADD_SECONDARY_ACCOUNT) {
ProfileOAuth2TokenServiceFactory::GetForProfile(profile_)->
UpdateCredentials(account_id, result.refresh_token);
@@ -299,8 +306,10 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) {
signin::ShouldShowAccountManagement(current_url_)));
}
- if (source == signin_metrics::SOURCE_REAUTH)
+ if (reason == signin_metrics::Reason::REASON_REAUTHENTICATION ||
+ reason == signin_metrics::Reason::REASON_UNLOCK) {
signin_manager->MergeSigninCredentialIntoCookieJar();
+ }
} else {
ProfileSyncService* sync_service =
ProfileSyncServiceFactory::GetForProfile(profile_);
@@ -309,7 +318,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::AccessPoint::ACCESS_POINT_SETTINGS ||
+ choose_what_to_sync_) {
bool show_settings_without_configure =
error_controller->HasError() &&
sync_service &&
@@ -324,14 +334,12 @@ 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,
+ CreateSyncStarter(browser, contents, current_url_,
signin::GetNextPageURLForPromoURL(current_url_),
- result.refresh_token,
- start_mode,
+ result.refresh_token, start_mode,
confirmation_required);
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
}
@@ -341,24 +349,20 @@ void InlineSigninHelper::OnClientOAuthSuccess(const ClientOAuthResult& result) {
void InlineSigninHelper::CreateSyncStarter(
Browser* browser,
content::WebContents* contents,
- const GURL& url,
+ const GURL& current_url,
+ const GURL& continue_url,
const std::string& refresh_token,
OneClickSigninSyncStarter::StartSyncMode start_mode,
OneClickSigninSyncStarter::ConfirmationRequired confirmation_required) {
// OneClickSigninSyncStarter will delete itself once the job is done.
new OneClickSigninSyncStarter(
- profile_, browser,
- gaia_id_, email_, password_, refresh_token,
- start_mode,
- contents,
- confirmation_required,
- url,
+ profile_, browser, gaia_id_, email_, password_, refresh_token, start_mode,
+ contents, confirmation_required, current_url, continue_url,
base::Bind(&InlineLoginHandlerImpl::SyncStarterCallback, handler_));
}
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 +384,6 @@ bool InlineSigninHelper::HandleCrossAccountError(
base::Unretained(this),
web_contents,
refresh_token,
- source,
confirmation_required,
start_mode));
return true;
@@ -389,7 +392,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) {
@@ -405,8 +407,8 @@ void InlineSigninHelper::ConfirmEmailAction(
std::string(chrome::kCreateProfileSubPage));
break;
case InlineSigninHelper::START_SYNC:
- CreateSyncStarter(browser, web_contents, GURL(), refresh_token,
- start_mode, confirmation_required);
+ CreateSyncStarter(browser, web_contents, current_url_, GURL(),
+ refresh_token, start_mode, confirmation_required);
break;
case InlineSigninHelper::CLOSE:
if (handler_) {
@@ -559,7 +561,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 +579,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::REASON_ADD_SECONDARY_ACCOUNT:
flow = "addaccount";
break;
- case signin_metrics::SOURCE_REAUTH:
+ case signin_metrics::Reason::REASON_REAUTHENTICATION:
+ case signin_metrics::Reason::REASON_UNLOCK:
flow = "reauth";
break;
default:
@@ -739,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::AccessPoint::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::REASON_ADD_SECONDARY_ACCOUNT:
can_offer_for = CAN_OFFER_FOR_SECONDARY_ACCOUNT;
break;
- case signin_metrics::SOURCE_REAUTH: {
+ case signin_metrics::Reason::REASON_REAUTHENTICATION:
+ case signin_metrics::Reason::REASON_UNLOCK: {
std::string primary_username =
SigninManagerFactory::GetForProfile(profile)
->GetAuthenticatedAccountInfo()
@@ -848,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,
@@ -860,7 +870,7 @@ void InlineLoginHandlerImpl::SyncStarterCallback(
weak_factory_.GetWeakPtr(),
signin::ShouldShowAccountManagement(current_url)));
} else {
- RedirectToNtpOrAppsPageIfNecessary(contents, source);
+ RedirectToNtpOrAppsPageIfNecessary(contents, access_point);
}
}
@@ -879,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::AccessPoint::ACCESS_POINT_AVATAR_BUBBLE_SIGN_IN);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698