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

Unified Diff: chrome/browser/signin/signin_promo.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/signin/signin_promo.cc
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
index 1377d70564f02a2d40db29ba534d689a17b31f3c..657aaa8748a6b12a2e9528213340cf098b8bfbe9 100644
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -165,25 +165,51 @@ void SetUserSkippedPromo(Profile* profile) {
profile->GetPrefs()->SetBoolean(prefs::kSignInPromoUserSkipped, true);
}
-GURL GetLandingURL(const char* option, int value) {
- std::string url = base::StringPrintf("%s/success.html?%s=%d",
- extensions::kGaiaAuthExtensionOrigin,
- option,
- value);
+GURL GetLandingURL(signin_metrics::AccessPoint access_point) {
+ std::string url = base::StringPrintf(
+ "%s/success.html?%s=%d", extensions::kGaiaAuthExtensionOrigin,
+ kSignInPromoQueryKeyAccessPoint, static_cast<int>(access_point));
+
+ // TODO(gogerald): right now, gaia server needs to distinguish the source from
+ // signin_metrics::SOURCE_START_PAGE, signin_metrics::SOURCE_SETTINGS and
+ // the others to show advanced sync settings, remove them after
+ // switching to Minute Maid sign in flow.
+ if (access_point == signin_metrics::AccessPoint::ACCESS_POINT_START_PAGE) {
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeySource,
+ signin_metrics::SOURCE_START_PAGE);
+ } else if (access_point ==
+ signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS) {
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeySource,
+ signin_metrics::SOURCE_SETTINGS);
+ } else {
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeySource,
+ signin_metrics::SOURCE_OTHERS);
+ }
+
return GURL(url);
}
-GURL GetPromoURL(signin_metrics::Source source, bool auto_close) {
- return GetPromoURL(source, auto_close, false /* is_constrained */);
+GURL GetPromoURL(signin_metrics::AccessPoint access_point,
+ signin_metrics::Reason reason,
+ bool auto_close) {
+ return GetPromoURL(access_point, reason, auto_close,
+ false /* is_constrained */);
}
-GURL GetPromoURL(signin_metrics::Source source,
+GURL GetPromoURL(signin_metrics::AccessPoint access_point,
+ signin_metrics::Reason reason,
bool auto_close,
bool is_constrained) {
- DCHECK_NE(signin_metrics::SOURCE_UNKNOWN, source);
+ CHECK_LT(static_cast<int>(access_point),
+ static_cast<int>(signin_metrics::AccessPoint::ACCESS_POINT_MAX));
+ CHECK_LT(static_cast<int>(reason),
+ static_cast<int>(signin_metrics::Reason::REASON_MAX));
std::string url(chrome::kChromeUIChromeSigninURL);
- base::StringAppendF(&url, "?%s=%d", kSignInPromoQueryKeySource, source);
+ base::StringAppendF(&url, "?%s=%d", kSignInPromoQueryKeyAccessPoint,
+ static_cast<int>(access_point));
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeyReason,
+ static_cast<int>(reason));
if (auto_close)
base::StringAppendF(&url, "&%s=1", kSignInPromoQueryKeyAutoClose);
if (is_constrained)
@@ -191,16 +217,20 @@ GURL GetPromoURL(signin_metrics::Source source,
return GURL(url);
}
-GURL GetReauthURL(Profile* profile, const std::string& account_id) {
+GURL GetReauthURL(signin_metrics::AccessPoint access_point,
+ signin_metrics::Reason reason,
+ Profile* profile,
+ const std::string& account_id) {
AccountInfo info = AccountTrackerServiceFactory::GetForProfile(profile)
->GetAccountInfo(account_id);
- return GetReauthURLWithEmail(info.email);
+ return GetReauthURLWithEmail(access_point, reason, info.email);
}
-GURL GetReauthURLWithEmail(const std::string& email) {
- GURL url = signin::GetPromoURL(
- signin_metrics::SOURCE_REAUTH, true /* auto_close */,
- true /* is_constrained */);
+GURL GetReauthURLWithEmail(signin_metrics::AccessPoint access_point,
+ signin_metrics::Reason reason,
+ const std::string& email) {
+ GURL url = signin::GetPromoURL(access_point, reason, true /* auto_close */,
+ true /* is_constrained */);
url = net::AppendQueryParameter(url, "email", email);
url = net::AppendQueryParameter(url, "validateEmail", "1");
@@ -223,24 +253,27 @@ GURL GetSigninPartitionURL() {
}
GURL GetSigninURLFromBubbleViewMode(Profile* profile,
- profiles::BubbleViewMode mode) {
+ profiles::BubbleViewMode mode,
+ signin_metrics::AccessPoint access_point) {
switch (mode) {
case profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN:
- return GetPromoURL(signin_metrics::SOURCE_AVATAR_BUBBLE_SIGN_IN,
- false /* auto_close */,
- true /* is_constrained */);
+ return GetPromoURL(access_point,
+ signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT,
+ false /* auto_close */, true /* is_constrained */);
break;
case profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT:
- return GetPromoURL(signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT,
- false /* auto_close */,
- true /* is_constrained */);
+ return GetPromoURL(access_point,
+ signin_metrics::Reason::REASON_ADD_SECONDARY_ACCOUNT,
+ false /* auto_close */, true /* is_constrained */);
break;
case profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH: {
const SigninErrorController* error_controller =
SigninErrorControllerFactory::GetForProfile(profile);
CHECK(error_controller);
DCHECK(error_controller->HasError());
- return GetReauthURL(profile, error_controller->error_account_id());
+ return GetReauthURL(access_point,
+ signin_metrics::Reason::REASON_REAUTHENTICATION,
+ profile, error_controller->error_account_id());
break;
}
default:
@@ -249,17 +282,34 @@ GURL GetSigninURLFromBubbleViewMode(Profile* profile,
}
}
-signin_metrics::Source GetSourceForPromoURL(const GURL& url) {
+signin_metrics::AccessPoint GetAccessPointForPromoURL(const GURL& url) {
std::string value;
- if (net::GetValueForKeyInQuery(url, kSignInPromoQueryKeySource, &value)) {
- int source = 0;
- if (base::StringToInt(value, &source) &&
- source >= signin_metrics::SOURCE_START_PAGE &&
- source < signin_metrics::SOURCE_UNKNOWN) {
- return static_cast<signin_metrics::Source>(source);
- }
+ if (!net::GetValueForKeyInQuery(url, kSignInPromoQueryKeyAccessPoint,
+ &value)) {
+ return signin_metrics::AccessPoint::ACCESS_POINT_MAX;
}
- return signin_metrics::SOURCE_UNKNOWN;
+
+ int access_point = 0;
+ CHECK(base::StringToInt(value, &access_point));
+ CHECK_GE(
+ access_point,
+ static_cast<int>(signin_metrics::AccessPoint::ACCESS_POINT_START_PAGE));
+ CHECK_LT(access_point,
+ static_cast<int>(signin_metrics::AccessPoint::ACCESS_POINT_MAX));
+ return static_cast<signin_metrics::AccessPoint>(access_point);
+}
+
+signin_metrics::Reason GetSigninReasonForPromoURL(const GURL& url) {
+ std::string value;
+ if (!net::GetValueForKeyInQuery(url, kSignInPromoQueryKeyReason, &value))
+ return signin_metrics::Reason::REASON_MAX;
+
+ int reason = 0;
+ CHECK(base::StringToInt(value, &reason));
+ CHECK_GE(reason, static_cast<int>(
+ signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT));
+ CHECK_LT(reason, static_cast<int>(signin_metrics::Reason::REASON_MAX));
+ return static_cast<signin_metrics::Reason>(reason);
}
bool IsAutoCloseEnabledInURL(const GURL& url) {
« no previous file with comments | « chrome/browser/signin/signin_promo.h ('k') | chrome/browser/ui/bookmarks/bookmark_bubble_sign_in_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698