Index: chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java |
index d1ac844d89ec308de7c66dbedd214265c32b717d..6021b6e7e6557c150195c967eca073187a1a5eeb 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java |
@@ -18,6 +18,7 @@ import org.chromium.base.Log; |
import org.chromium.base.ObserverList; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.annotations.CalledByNative; |
+import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; |
import org.chromium.chrome.browser.externalauth.UserRecoverableErrorHandler; |
import org.chromium.sync.signin.ChromeSigninController; |
@@ -66,6 +67,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed |
private final ObserverList<SignInAllowedObserver> mSignInAllowedObservers = |
new ObserverList<SignInAllowedObserver>(); |
+ private static int sSignInAccessPoint = SigninAccessPoint.UNKNOWN; |
private Activity mSignInActivity; |
private Account mSignInAccount; |
private SignInFlowObserver mSignInFlowObserver; |
@@ -163,6 +165,22 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed |
} |
/** |
+ * Log the access point when the user see the view of choosing account to sign in. |
+ * @param accessPoint the enum value of AccessPoint defined in signin_metrics.h. |
+ */ |
+ public static void logSigninStartAccessPoint(int accessPoint) { |
+ RecordHistogram.recordEnumeratedHistogram( |
+ "Signin.SigninStartedAccessPoint", accessPoint, SigninAccessPoint.MAX); |
+ sSignInAccessPoint = accessPoint; |
+ } |
+ |
+ private void logSigninCompleteAccessPoint() { |
+ RecordHistogram.recordEnumeratedHistogram( |
+ "Signin.SigninCompletedAccessPoint", sSignInAccessPoint, SigninAccessPoint.MAX); |
+ sSignInAccessPoint = SigninAccessPoint.UNKNOWN; |
+ } |
+ |
+ /** |
* Notifies the SigninManager that the First Run check has completed. |
* |
* The user will be allowed to sign-in once this is signaled. |
@@ -488,6 +506,11 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed |
} |
SigninManager.get(mContext).logInSignedInUser(); |
+ logSigninCompleteAccessPoint(); |
+ // Log signin in reason as defined in signin_metrics.h. Right now only |
+ // SIGNIN_PRIMARY_ACCOUNT available on Android. |
+ RecordHistogram.recordEnumeratedHistogram("Signin.SigninReason", |
+ SigninReason.SIGNIN_PRIMARY_ACCOUNT, SigninReason.MAX); |
} |
@Override |
public void onSigninCancelled() { |