Index: chrome/browser/android/metrics/uma_bridge.cc |
diff --git a/chrome/browser/android/metrics/uma_bridge.cc b/chrome/browser/android/metrics/uma_bridge.cc |
index 9577106e2e2c9415a9ce6885a652535fb48148da..3722894700ee80d6767b0edc879278c73517b372 100644 |
--- a/chrome/browser/android/metrics/uma_bridge.cc |
+++ b/chrome/browser/android/metrics/uma_bridge.cc |
@@ -12,7 +12,34 @@ |
using base::UserMetricsAction; |
using content::RecordAction; |
-using content::RecordComputedAction; |
+ |
+namespace { |
Ilya Sherman
2015/03/10 23:59:30
nit: Please leave a blank line after this one.
aurimas (slooooooooow)
2015/03/11 18:49:23
Done
|
+// When updating these values, remember to also update |
+// tools/histograms/histograms.xml. |
+enum MobileFreFinishState { |
+ MOBILE_FRE_FINISH_STATE_SKIP_SIGN_IN = 0, |
+ MOBILE_FRE_FINISH_STATE_SIGN_IN_SUCCESS = 1, |
+ MOBILE_FRE_FINISH_STATE_SKIP_AFTER_FAIL = 2, |
+ MOBILE_FRE_FINISH_STATE_BOUNDARY = 3 |
+}; |
+ |
+// When updating, remember to also update chrome/histograms.xml. |
+enum MobileFreSignInChoice { |
+ MOBILE_FRE_SIGNIN_SETTINGS_DEFAULT_ACCOUNT = 0, |
+ MOBILE_FRE_SIGNIN_SETTINGS_ANOTHER_ACCOUNT = 1, |
+ MOBILE_FRE_SIGNIN_ACCEPT_DEFAULT_ACCOUNT = 2, |
+ MOBILE_FRE_SIGNIN_ACCEPT_ANOTHER_ACCOUNT = 3, |
+ MOBILE_FRE_SIGNIN_NO_THANKS = 4, |
+ MOBILE_FRE_SIGNIN_COUNT = 5 |
+}; |
+ |
+static std::vector<int> GetAllFREFinishStates() { |
+ std::vector<int> states; |
+ for (int i = 0; i < MOBILE_FRE_FINISH_STATE_BOUNDARY; i++) |
Ilya Sherman
2015/03/10 23:59:30
nit: ++i
aurimas (slooooooooow)
2015/03/11 18:49:23
Done
|
+ states.push_back(i); |
+ return states; |
+} |
Ilya Sherman
2015/03/10 23:59:30
nit: Please leave a blank line after this one.
aurimas (slooooooooow)
2015/03/11 18:49:23
Done
|
+} // namespace |
static void RecordMenuShow(JNIEnv*, jclass) { |
RecordAction(UserMetricsAction("MobileMenuShow")); |
@@ -79,6 +106,54 @@ static void RecordDataReductionProxySettings( |
boundary); |
} |
+// First Run Experience |
+static void RecordFreSkipSignIn(JNIEnv*, jclass) { |
+ UMA_HISTOGRAM_CUSTOM_ENUMERATION("MobileFre.FinishState", |
Ilya Sherman
2015/03/10 23:59:30
Why CUSTOM_ENUMERATION, rather than just regular E
|
+ MOBILE_FRE_FINISH_STATE_SKIP_SIGN_IN, |
+ // Note the third argument is only |
+ // evaluated once, see macro |
+ // definition for details. |
+ GetAllFREFinishStates()); |
+} |
+ |
+static void RecordFreSignInSuccessful(JNIEnv*, jclass) { |
+ UMA_HISTOGRAM_CUSTOM_ENUMERATION("MobileFre.FinishState", |
+ MOBILE_FRE_FINISH_STATE_SIGN_IN_SUCCESS, |
+ GetAllFREFinishStates()); |
+} |
+ |
+static void RecordFreSignInAttempted(JNIEnv*, jclass) { |
+ UMA_HISTOGRAM_CUSTOM_ENUMERATION("MobileFre.FinishState", |
+ MOBILE_FRE_FINISH_STATE_SKIP_AFTER_FAIL, |
+ GetAllFREFinishStates()); |
+} |
+ |
+// First Run Experience post M-37 (the old one above is temporarily kept to |
+// match the numbers during the upgrade). |
+static void RecordFreSignInShown(JNIEnv*, jclass) { |
+ RecordAction(UserMetricsAction("MobileFre.SignInShown")); |
+} |
+ |
+static void RecordFreSignInAccepted(JNIEnv*, |
+ jclass, |
+ jboolean show_settings, |
+ jboolean default_account) { |
+ const MobileFreSignInChoice choice = |
+ show_settings |
+ ? (default_account ? MOBILE_FRE_SIGNIN_SETTINGS_DEFAULT_ACCOUNT |
+ : MOBILE_FRE_SIGNIN_SETTINGS_ANOTHER_ACCOUNT) |
+ : (default_account ? MOBILE_FRE_SIGNIN_ACCEPT_DEFAULT_ACCOUNT |
+ : MOBILE_FRE_SIGNIN_ACCEPT_ANOTHER_ACCOUNT); |
+ UMA_HISTOGRAM_ENUMERATION("MobileFre.SignInChoice", choice, |
+ MOBILE_FRE_SIGNIN_COUNT); |
+} |
+ |
+static void RecordFreSignInDeclined(JNIEnv*, jclass) { |
+ UMA_HISTOGRAM_ENUMERATION("MobileFre.SignInChoice", |
+ MOBILE_FRE_SIGNIN_NO_THANKS, |
+ MOBILE_FRE_SIGNIN_COUNT); |
+} |
Ilya Sherman
2015/03/10 23:59:30
Would it make sense to use base/android/record_his
|
+ |
namespace chrome { |
namespace android { |