summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgogerald <gogerald@chromium.org>2016-01-08 09:28:14 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-08 17:29:25 +0000
commit3f73f9bc8b80e3df186c56f9af436484ed81d12a (patch)
tree1cf5c9333db9a61f6b295f57e39394f1a72b03c5
parentf54aa63d9e7ff2877e7c3d6bfb340bafc5559c75 (diff)
downloadchromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.zip
chromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.tar.gz
chromium_src-3f73f9bc8b80e3df186c56f9af436484ed81d12a.tar.bz2
Implement sign-in related user actions in Chrome for Android.
This CL implements sign-in related user actions in Chrome for Android as design in https://docs.google.com/a/google.com/document/d/1-gXYAMXXgsJhk6jxO55RuYJ00JBGermevJZ0sIlk6ko/edit?usp=sharing. BUG=532557 Review URL: https://codereview.chromium.org/1537493005 Cr-Commit-Position: refs/heads/master@{#368360}
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkSigninActivity.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java3
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java17
-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/SigninPromoScreen.java4
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java16
-rw-r--r--tools/metrics/actions/actions.xml35
10 files changed, 81 insertions, 2 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java
index 3b0e3b7..c4e39e8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkPromoHeader.java
@@ -72,6 +72,7 @@ class EnhancedBookmarkPromoHeader implements AndroidSyncSettingsObserver,
PreferenceManager.getDefaultSharedPreferences(mContext).edit()
.putInt(PREF_SIGNIN_PROMO_SHOW_COUNT, promoShowCount).apply();
RecordUserAction.record("Stars_SignInPromoHeader_Displayed");
+ RecordUserAction.record("Signin_Impression_FromBookmarkManager");
}
}
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 2d0618d..7912bd04 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
@@ -120,11 +120,13 @@ public class EnhancedBookmarkSigninActivity extends EnhancedBookmarkActivityBase
@Override
public void onAccountSelectionConfirmed() {
RecordUserAction.record("Stars_SignInPromoActivity_SignedIn");
+ RecordUserAction.record("Signin_Signin_FromBookmarkManager");
}
@Override
public void onNewAccount() {
RecordUserAction.record("Stars_SignInPromoActivity_NewAccount");
+ RecordUserAction.record("Signin_AddAccountToDevice");
}
@Override
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 4d69d08..0318783 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
@@ -306,6 +306,7 @@ public class FirstRunActivity extends AppCompatActivity implements FirstRunPageD
@Override
public void onSigninDialogShown() {
RecordUserAction.record("MobileFre.SignInShown");
+ RecordUserAction.record("Signin_Impression_FromStartPage");
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java
index 888505c..6ba26366 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java
@@ -15,6 +15,7 @@ import android.text.TextUtils;
import org.chromium.base.CommandLine;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.preferences.Preferences;
import org.chromium.chrome.browser.preferences.PreferencesLauncher;
@@ -91,6 +92,7 @@ public final class FirstRunSignInProcessor {
}
final boolean setUpSync = getFirstRunFlowSignInSetupSync(activity);
+ RecordUserAction.record("Signin_Signin_FromStartPage");
signinManager.signInToSelectedAccount(activity, account,
SigninManager.SIGNIN_TYPE_INTERACTIVE, new SignInFlowObserver() {
private void completeSignIn() {
@@ -103,6 +105,7 @@ public final class FirstRunSignInProcessor {
@Override
public void onSigninComplete() {
+ RecordUserAction.record("Signin_Signin_Succeed");
completeSignIn();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
index 6040b59..2b70b63 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
@@ -21,11 +21,13 @@ import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import org.chromium.base.ApiCompatibilityUtils;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionWindow;
+import org.chromium.chrome.browser.ntp.RecentTabsPromoView.UserActionListener;
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedTab;
import org.chromium.ui.WindowOpenDisposition;
import org.chromium.ui.base.DeviceFormFactor;
@@ -591,7 +593,20 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter {
View getChildView(int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
if (convertView == null) {
- convertView = new RecentTabsPromoView(mActivity, mRecentTabsManager, null);
+ convertView = new RecentTabsPromoView(
+ mActivity, mRecentTabsManager, new UserActionListener() {
+ @Override
+ public void onAccountSelectionConfirmed() {
+ RecordUserAction.record("Signin_Signin_FromRecentTabs");
+ }
+ @Override
+ public void onNewAccount() {
+ RecordUserAction.record("Signin_AddAccountToDevice");
+ }
+ });
+ }
+ if (!mRecentTabsManager.isSignedIn()) {
+ RecordUserAction.record("Signin_Impression_FromRecentTabs");
}
return convertView;
}
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 6e32fd5..76a086a 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
@@ -14,6 +14,7 @@ import android.preference.PreferenceFragment;
import org.chromium.base.Callback;
import org.chromium.base.VisibleForTesting;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.PasswordUIView;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
@@ -207,6 +208,7 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb
dialog.setListener(new AddGoogleAccountListener() {
@Override
public void onAddAccountClicked() {
+ RecordUserAction.record("Signin_AddAccountToDevice");
AccountAdder.getInstance().addAccount(
MainPreferences.this, AccountAdder.ADD_ACCOUNT_RESULT);
}
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 c1740dd..8fff265 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
@@ -13,6 +13,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.firstrun.AccountFirstRunView;
import org.chromium.chrome.browser.firstrun.ProfileDataCache;
@@ -89,6 +90,7 @@ public class SigninPromoScreen
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SigninPromoUma.recordAction(SigninPromoUma.SIGNIN_PROMO_SHOWN);
+ RecordUserAction.record("Signin_Impression_FromSigninPromo");
}
@Override
@@ -108,6 +110,7 @@ public class SigninPromoScreen
mAccountFirstRunView.switchToSignedMode();
SigninManager.get(getOwnerActivity()).logInSignedInUser();
SigninPromoUma.recordAction(SigninPromoUma.SIGNIN_PROMO_ACCEPTED);
+ RecordUserAction.record("Signin_Signin_Succeed");
}
@Override
@@ -116,6 +119,7 @@ public class SigninPromoScreen
dismiss();
}
};
+ RecordUserAction.record("Signin_Signin_FromSigninPromo");
SigninManager.get(getOwnerActivity().getApplicationContext())
.signInToSelectedAccount(getOwnerActivity(), account,
SigninManager.SIGNIN_TYPE_INTERACTIVE, signInCallback);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java
index c6bc48e..732f36d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ChooseAccountFragment.java
@@ -11,6 +11,7 @@ import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import java.util.List;
@@ -39,6 +40,7 @@ public class ChooseAccountFragment extends DialogFragment implements OnClickList
}
protected void selectAccount(final String account) {
+ RecordUserAction.record("Signin_Signin_FromSettings");
ConfirmAccountChangeFragment.confirmSyncAccount(account, getActivity());
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java
index cfe67e0..140a2e4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/ConfirmAccountChangeFragment.java
@@ -19,9 +19,11 @@ import android.view.View;
import android.widget.TextView;
import org.chromium.base.Callback;
+import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.signin.SigninManager;
+import org.chromium.chrome.browser.signin.SigninManager.SignInFlowObserver;
import org.chromium.sync.signin.AccountManagerHelper;
import org.chromium.ui.text.SpanApplier;
import org.chromium.ui.text.SpanApplier.SpanInfo;
@@ -83,6 +85,7 @@ public class ConfirmAccountChangeFragment extends DialogFragment
}
}));
+ RecordUserAction.record("Signin_Show_ImportDataPrompt");
textView.setText(messageWithLink);
textView.setMovementMethod(LinkMovementMethod.getInstance());
return new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme)
@@ -95,7 +98,10 @@ public class ConfirmAccountChangeFragment extends DialogFragment
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == AlertDialog.BUTTON_POSITIVE) {
+ RecordUserAction.record("Signin_ImportDataPrompt_ImportData");
signIn(getActivity(), mAccountName);
+ } else if (which == AlertDialog.BUTTON_NEGATIVE) {
+ RecordUserAction.record("Signin_ImportDataPrompt_Cancel");
}
}
@@ -104,6 +110,7 @@ public class ConfirmAccountChangeFragment extends DialogFragment
dialogFragment.show(getFragmentManager(), null);
// Dismiss the confirmation dialog.
dismiss();
+ RecordUserAction.record("Signin_ImportDataPrompt_DontImport");
}
private static void signIn(final Activity activity, String accountName) {
@@ -113,7 +120,14 @@ public class ConfirmAccountChangeFragment extends DialogFragment
public void onResult(Account account) {
if (account == null) return;
SigninManager.get(activity).signInToSelectedAccount(activity, account,
- SigninManager.SIGNIN_TYPE_INTERACTIVE, null);
+ SigninManager.SIGNIN_TYPE_INTERACTIVE, new SignInFlowObserver() {
+ @Override
+ public void onSigninComplete() {
+ RecordUserAction.record("Signin_Signin_Succeed");
+ }
+ @Override
+ public void onSigninCancelled() {}
+ });
}
});
}
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 5303c25..d2b4dd3 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -12095,6 +12095,13 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="Signin_AddAccountToDevice">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when the user chooses to add an account to device.
+ </description>
+</action>
+
<action name="Signin_EnterpriseAccountPrompt_Cancel">
<owner>gogerald@chromium.org</owner>
<description>
@@ -12157,6 +12164,13 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Signin_Impression_FromBookmarkManager">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when showing sign in entry in the bookmark manager.
+ </description>
+</action>
+
<action name="Signin_Impression_FromCloudPrint">
<owner>gogerald@chromium.org</owner>
<description>
@@ -12190,6 +12204,27 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Signin_Impression_FromRecentTabs">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when showing sign in entry in the recent tabs page.
+ </description>
+</action>
+
+<action name="Signin_Impression_FromSigninPromo">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when showing sign in entry in the sign in promo.
+ </description>
+</action>
+
+<action name="Signin_Impression_FromStartPage">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when showing sign in entry in the first run experience.
+ </description>
+</action>
+
<action name="Signin_Show_EnterpriseAccountPrompt">
<owner>gogerald@chromium.org</owner>
<description>