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

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: Created 5 years, 1 month 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 9db75c826cf8fbd6ad0365ea3f98560e8645899e..aa1268e7a09f211602b210a8ac3a2bc58f3623e7 100644
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -164,25 +164,47 @@ 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, 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::ACCESS_POINT_START_PAGE) {
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeySource,
+ signin_metrics::SOURCE_START_PAGE);
+ } else if (access_point == signin_metrics::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(access_point < signin_metrics::ACCESS_POINT_MAX);
+ CHECK(reason < signin_metrics::REASON_MAX);
std::string url(chrome::kChromeUIChromeSigninURL);
- base::StringAppendF(&url, "?%s=%d", kSignInPromoQueryKeySource, source);
+ base::StringAppendF(&url, "?%s=%d", kSignInPromoQueryKeyAccessPoint,
+ access_point);
+ base::StringAppendF(&url, "&%s=%d", kSignInPromoQueryKeyReason, reason);
if (auto_close)
base::StringAppendF(&url, "&%s=1", kSignInPromoQueryKeyAutoClose);
if (is_constrained)
@@ -190,16 +212,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");
@@ -221,17 +247,33 @@ GURL GetSigninPartitionURL() {
return GURL("chrome-guest://chrome-signin/?");
}
-signin_metrics::Source GetSourceForPromoURL(const GURL& url) {
+signin_metrics::AccessPoint GetAccessPointForPromoURL(const GURL& url) {
+ std::string value;
+ if (net::GetValueForKeyInQuery(url, kSignInPromoQueryKeyAccessPoint,
+ &value)) {
+ int access_point = 0;
+ if (base::StringToInt(value, &access_point) &&
+ access_point >= signin_metrics::ACCESS_POINT_START_PAGE &&
+ access_point < signin_metrics::ACCESS_POINT_MAX) {
+ return static_cast<signin_metrics::AccessPoint>(access_point);
+ }
+ CHECK(false);
+ }
+ return signin_metrics::ACCESS_POINT_MAX;
+}
+
+signin_metrics::Reason GetSigninReasonForPromoURL(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, kSignInPromoQueryKeyReason, &value)) {
+ int reason = 0;
+ if (base::StringToInt(value, &reason) &&
+ reason >= signin_metrics::REASON_SIGNIN_PRIMARY_ACCOUNT &&
+ reason < signin_metrics::REASON_MAX) {
+ return static_cast<signin_metrics::Reason>(reason);
}
+ CHECK(false);
}
- return signin_metrics::SOURCE_UNKNOWN;
+ return signin_metrics::REASON_MAX;
}
bool IsAutoCloseEnabledInURL(const GURL& url) {

Powered by Google App Engine
This is Rietveld 408576698