diff options
author | aruslan <aruslan@chromium.org> | 2015-06-23 16:00:17 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-23 23:00:59 +0000 |
commit | 05f3d37bc4ae390f44c38440b0081b77cf89b585 (patch) | |
tree | 6db211957f260764ba9364d4d4d5de1ee9c9a485 | |
parent | f7e52f9dd9051144e4c415c9c584d72c9e4c2a00 (diff) | |
download | chromium_src-05f3d37bc4ae390f44c38440b0081b77cf89b585.zip chromium_src-05f3d37bc4ae390f44c38440b0081b77cf89b585.tar.gz chromium_src-05f3d37bc4ae390f44c38440b0081b77cf89b585.tar.bz2 |
[Android FRE] Additional sign-in metrics
BUG=503312,450423
Review URL: https://codereview.chromium.org/1200933003
Cr-Commit-Position: refs/heads/master@{#335791}
4 files changed, 45 insertions, 0 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java index 1080a5b..2a3e7a2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java @@ -56,6 +56,11 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD // UMA constants. private static final String UMA_SIGNIN_CHOICE = "MobileFre.SignInChoice"; + private static final String UMA_SIGNIN_CHOICE_ENTRY_MAIN_INTENT = ".MainIntent"; + private static final String UMA_SIGNIN_CHOICE_ENTRY_VIEW_INTENT = ".ViewIntent"; + private static final String UMA_SIGNIN_CHOICE_ZERO_ACCOUNTS = ".ZeroAccounts"; + private static final String UMA_SIGNIN_CHOICE_ONE_ACCOUNT = ".OneAccount"; + private static final String UMA_SIGNIN_CHOICE_MANY_ACCOUNTS = ".ManyAccounts"; private static final int SIGNIN_SETTINGS_DEFAULT_ACCOUNT = 0; private static final int SIGNIN_SETTINGS_ANOTHER_ACCOUNT = 1; private static final int SIGNIN_ACCEPT_DEFAULT_ACCOUNT = 2; @@ -257,6 +262,20 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD } RecordHistogram.recordEnumeratedHistogram( UMA_SIGNIN_CHOICE, choice, SIGNIN_OPTION_COUNT); + + String entryType = mFreProperties.getBoolean(FirstRunActivity.COMING_FROM_CHROME_ICON) + ? UMA_SIGNIN_CHOICE_ENTRY_MAIN_INTENT : UMA_SIGNIN_CHOICE_ENTRY_VIEW_INTENT; + int numAccounts = sGlue.numberOfAccounts(getApplicationContext()); + String numAccountsString; + if (numAccounts == 0) { + numAccountsString = UMA_SIGNIN_CHOICE_ZERO_ACCOUNTS; + } else if (numAccounts == 1) { + numAccountsString = UMA_SIGNIN_CHOICE_ONE_ACCOUNT; + } else { + numAccountsString = UMA_SIGNIN_CHOICE_MANY_ACCOUNTS; + } + RecordHistogram.recordEnumeratedHistogram( + UMA_SIGNIN_CHOICE + entryType + numAccountsString, choice, SIGNIN_OPTION_COUNT); } mFreProperties.putString(RESULT_SIGNIN_ACCOUNT_NAME, mResultSignInAccountName); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlue.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlue.java index 48b5674..19a8190 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlue.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlue.java @@ -44,6 +44,12 @@ public interface FirstRunGlue { boolean isDefaultAccountName(Context appContext, String accountName); /** + * @return Number of available accounts on the device. + * @param appContext An application context. + */ + int numberOfAccounts(Context appContext); + + /** * Opens the Android account adder UI. * @param fragment A fragment that requested the service. */ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java index 3ed76b4..c32aee6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunGlueImpl.java @@ -52,6 +52,12 @@ public class FirstRunGlueImpl implements FirstRunGlue { } @Override + public int numberOfAccounts(Context appContext) { + List<String> accountNames = AccountManagerHelper.get(appContext).getGoogleAccountNames(); + return accountNames == null ? 0 : accountNames.size(); + } + + @Override public void openAccountAdder(Fragment fragment) { AccountAdder.getInstance().addAccount(fragment, AccountAdder.ADD_ACCOUNT_RESULT); } diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 7b30063..146f9a1 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -70495,6 +70495,20 @@ To add a new entry, add it with any value and run test to compute valid value. <affected-histogram name="Media.VideoCaptureManager"/> </histogram_suffixes> +<histogram_suffixes name="MobileFreSignInChoiceEntryType" separator="."> + <suffix name="MainIntent" label="Icon click"/> + <suffix name="ViewIntent" label="VIEW intent"/> + <affected-histogram name="MobileFre.SignInChoice"/> +</histogram_suffixes> + +<histogram_suffixes name="MobileFreSignInChoiceNumberOfAccounts" separator="."> + <suffix name="ZeroAccounts" label="Zero accounts"/> + <suffix name="OneAccount" label="One account"/> + <suffix name="ManyAccounts" label="Two or more accounts"/> + <affected-histogram name="MobileFre.SignInChoice.MainIntent"/> + <affected-histogram name="MobileFre.SignInChoice.ViewIntent"/> +</histogram_suffixes> + <histogram_suffixes name="ModuleIntegrityVerificationType" separator="."> <suffix name="WithoutByteSet" label="The version of the Module Integrity Verifier that doesn't use a |