summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/BUILD.gn7
-rw-r--r--chrome/android/BUILD.gn1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java6
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java3
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java6
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPromoView.java8
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java23
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java1
-rw-r--r--chrome/chrome.gyp10
-rw-r--r--components/signin/core/browser/signin_metrics.h6
-rw-r--r--tools/android/eclipse/.classpath1
12 files changed, 73 insertions, 1 deletions
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index cc14b81..4edb1d6 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -945,6 +945,13 @@ if (is_android) {
]
}
+ # GYP: //chrome/chrome.gyp:signin_metrics_enum_java
+ java_cpp_enum("signin_metrics_enum_javagen") {
+ sources = [
+ "../components/signin/core/browser/signin_metrics.h",
+ ]
+ }
+
# GYP: //chrome/chrome.gyp:page_info_connection_type_java
java_cpp_enum("page_info_connection_type_javagen") {
sources = [
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 37ced33..5e50b32 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -167,6 +167,7 @@ android_library("chrome_java") {
":resource_id_javagen",
"//chrome:content_setting_javagen",
"//chrome:content_settings_type_javagen",
+ "//chrome:signin_metrics_enum_javagen",
]
# TODO(sievers): Split java code into components. Not everything
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java
index 7912bd04..5d2d7c6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java
@@ -13,6 +13,7 @@ import org.chromium.chrome.browser.ntp.RecentTabsPromoView;
import org.chromium.chrome.browser.ntp.RecentTabsPromoView.SyncPromoModel;
import org.chromium.chrome.browser.ntp.RecentTabsPromoView.UserActionListener;
import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.signin.SigninAccessPoint;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.sync.ProfileSyncService;
@@ -136,4 +137,9 @@ public class EnhancedBookmarkSigninActivity extends EnhancedBookmarkActivityBase
}
return mProfileDataCache;
}
+
+ @Override
+ public int getAccessPoint() {
+ return SigninAccessPoint.BOOKMARK_MANAGER;
+ }
}
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 0318783..fdd9e72 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
@@ -26,6 +26,8 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoScreen;
import org.chromium.chrome.browser.preferences.datareduction.DataReductionProxyUma;
import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.signin.SigninAccessPoint;
+import org.chromium.chrome.browser.signin.SigninManager;
import java.lang.ref.WeakReference;
import java.lang.reflect.Constructor;
@@ -307,6 +309,7 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD
public void onSigninDialogShown() {
RecordUserAction.record("MobileFre.SignInShown");
RecordUserAction.record("Signin_Impression_FromStartPage");
+ SigninManager.logSigninStartAccessPoint(SigninAccessPoint.START_PAGE);
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
index 5f2749c..c598cfa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -22,6 +22,7 @@ import org.chromium.chrome.browser.ntp.RecentTabsPromoView.SyncPromoModel;
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedCallback;
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedTab;
import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.signin.SigninAccessPoint;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.sync.ProfileSyncService;
@@ -475,4 +476,9 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
}
return mProfileDataCache;
}
+
+ @Override
+ public int getAccessPoint() {
+ return SigninAccessPoint.RECENT_TABS;
+ }
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPromoView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPromoView.java
index 946b28a..8356faa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPromoView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPromoView.java
@@ -19,6 +19,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.firstrun.AccountFirstRunView;
import org.chromium.chrome.browser.firstrun.ProfileDataCache;
import org.chromium.chrome.browser.signin.AccountAdder;
+import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.sync.ui.ConfirmAccountChangeFragment;
import org.chromium.sync.AndroidSyncSettings.AndroidSyncSettingsObserver;
@@ -73,6 +74,11 @@ public class RecentTabsPromoView extends FrameLayout implements AndroidSyncSetti
* @return A ProfileDataCache to retrieve user account info.
*/
public ProfileDataCache getProfileDataCache();
+
+ /**
+ * @return the access point of creating this view.
+ */
+ public int getAccessPoint();
}
/**
@@ -282,7 +288,7 @@ public class RecentTabsPromoView extends FrameLayout implements AndroidSyncSetti
assert false : "No forced accounts in SignInPromoView";
}
});
-
+ SigninManager.logSigninStartAccessPoint(mModel.getAccessPoint());
return signInPromoView;
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
index 76a086a..6a9496c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.preferences.datareduction.DataReductionPrefer
import org.chromium.chrome.browser.signin.AccountAdder;
import org.chromium.chrome.browser.signin.AddGoogleAccountDialogFragment;
import org.chromium.chrome.browser.signin.AddGoogleAccountDialogFragment.AddGoogleAccountListener;
+import org.chromium.chrome.browser.signin.SigninAccessPoint;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.sync.ui.ChooseAccountFragment;
@@ -202,6 +203,7 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb
new ChooseAccountFragment(accountNames);
chooserFragment.show(getFragmentManager(), ACCOUNT_PICKER_DIALOG_TAG);
callback.onResult(chooserFragment);
+ SigninManager.logSigninStartAccessPoint(SigninAccessPoint.SETTINGS);
}
} else {
AddGoogleAccountDialogFragment dialog = new AddGoogleAccountDialogFragment();
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 d1ac844..9f4d3f6 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;
@@ -51,6 +52,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
private static final String TAG = "SigninManager";
private static SigninManager sSigninManager;
+ private static int sSignInAccessPoint = SigninAccessPoint.UNKNOWN;
private final Context mContext;
private final long mNativeSigninManagerAndroid;
@@ -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() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java
index 8fff265..067efea 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java
@@ -61,6 +61,7 @@ public class SigninPromoScreen
SigninPromoScreen promoScreen = new SigninPromoScreen(activity);
promoScreen.show();
+ SigninManager.logSigninStartAccessPoint(SigninAccessPoint.SIGNIN_PROMO);
preferenceManager.setSigninPromoShown();
return true;
}
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index cc6424b..5a16c54 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -547,6 +547,7 @@
'profile_account_management_metrics_java',
'resource_id_java',
'shortcut_source_java',
+ 'signin_metrics_enum_java',
'tab_load_status_java',
'../base/base.gyp:base',
'../build/android/java_google_api_keys.gyp:google_api_keys_java',
@@ -670,6 +671,15 @@
},
'includes': [ '../build/android/java_cpp_enum.gypi' ],
},
+ {
+ # GN: //chrome:signin_metrics_enum_javagen
+ 'target_name': 'signin_metrics_enum_java',
+ 'type': 'none',
+ 'variables': {
+ 'source_file': '../components/signin/core/browser/signin_metrics.h',
+ },
+ 'includes': [ '../build/android/java_cpp_enum.gypi' ],
+ },
], # 'targets'
'includes': [
'chrome_android.gypi',
diff --git a/components/signin/core/browser/signin_metrics.h b/components/signin/core/browser/signin_metrics.h
index 762fd37..420916a 100644
--- a/components/signin/core/browser/signin_metrics.h
+++ b/components/signin/core/browser/signin_metrics.h
@@ -115,6 +115,9 @@ enum Source {
// initiated. Not all of them exist on all platforms. They are used with
// "Signin.SigninStartedAccessPoint" and "Signin.SigninCompletedAccessPoint"
// histograms.
+// A Java counterpart will be generated for this enum.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.signin
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: SigninAccessPoint
enum class AccessPoint : int {
ACCESS_POINT_START_PAGE = 0,
ACCESS_POINT_NTP_LINK,
@@ -138,6 +141,9 @@ enum class AccessPoint : int {
};
// Enum values which enumerates all reasons to start sign in process.
+// A Java counterpart will be generated for this enum.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.signin
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: SigninReason
enum class Reason : int {
REASON_SIGNIN_PRIMARY_ACCOUNT = 0,
REASON_ADD_SECONDARY_ACCOUNT,
diff --git a/tools/android/eclipse/.classpath b/tools/android/eclipse/.classpath
index eef7d41..f498617 100644
--- a/tools/android/eclipse/.classpath
+++ b/tools/android/eclipse/.classpath
@@ -135,6 +135,7 @@ to the classpath for downstream development. See "additional_entries" below.
<classpathentry kind="src" path="out/Debug/gen/enums/result_codes_java"/>
<classpathentry kind="src" path="out/Debug/gen/enums/screen_orientation_values_java"/>
<classpathentry kind="src" path="out/Debug/gen/enums/selection_event_type_java"/>
+ <classpathentry kind="src" path="out/Debug/gen/enums/signin_metrics_enum_java"/>
<classpathentry kind="src" path="out/Debug/gen/enums/speech_recognition_error_java"/>
<classpathentry kind="src" path="out/Debug/gen/enums/system_ui_resource_type_java"/>
<classpathentry kind="src" path="out/Debug/gen/enums/tab_load_status_java"/>