| 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..0a44e031ece79ea120e773b74e09594df042e24b 100644
|
| --- a/chrome/browser/android/metrics/uma_bridge.cc
|
| +++ b/chrome/browser/android/metrics/uma_bridge.cc
|
| @@ -14,6 +14,34 @@ using base::UserMetricsAction;
|
| using content::RecordAction;
|
| using content::RecordComputedAction;
|
|
|
| +namespace {
|
| +// 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++)
|
| + states.push_back(i);
|
| + return states;
|
| +}
|
| +} // namespace
|
| +
|
| static void RecordMenuShow(JNIEnv*, jclass) {
|
| RecordAction(UserMetricsAction("MobileMenuShow"));
|
| }
|
| @@ -79,6 +107,56 @@ static void RecordDataReductionProxySettings(
|
| boundary);
|
| }
|
|
|
| +// First Run Experience
|
| +static void RecordFreSkipSignIn(JNIEnv*, jclass) {
|
| + UMA_HISTOGRAM_CUSTOM_ENUMERATION("MobileFre.FinishState",
|
| + 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);
|
| +}
|
| +
|
| namespace chrome {
|
| namespace android {
|
|
|
|
|