New issue
Advanced search Search tips

Issue 697572 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Signin_Impression_FromSettings gets recorded twice when signing out of Chrome

Project Member Reported by ew...@chromium.org, Mar 1 2017

Issue description

Steps to repro:
1) Be signed into Chrome. Go to chrome://user-actions
2) Go to Settings > Account settings page
3) Click "Sign out of Chrome"
4) Confirm the sign out
5) Taken back to signed-out top-level Settings page
6) Close settings, go back to chrome://user-actions
7) Observe that Signin_Impression_FromSettings has been recorded twice

It's a minor issue, since I don't think many people sign out of Chrome regularly. But we should fix it, since it may skew the CTR for the button on the settings page downwards. I didn't test on iOS, so don't know if it's the same behavior there or not.
 
Status: Started (was: Assigned)
Stack traces for reference.

First call:
org.chromium.chrome.browser.preferences.SignInPreference.update(SignInPreference.java:148)
org.chromium.chrome.browser.preferences.SignInPreference.<init>(SignInPreference.java:49)
java.lang.reflect.Constructor.constructNative(Native Method)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
android.preference.GenericInflater.createItem(GenericInflater.java:383)
android.preference.GenericInflater.createItemFromTag(GenericInflater.java:430)
android.preference.GenericInflater.rInflate(GenericInflater.java:481)
android.preference.GenericInflater.inflate(GenericInflater.java:326)
android.preference.GenericInflater.inflate(GenericInflater.java:263)
android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272)
android.preference.PreferenceFragment.addPreferencesFromResource(PreferenceFragment.java:285)
org.chromium.chrome.browser.preferences.MainPreferences.updatePreferences(MainPreferences.java:102)
org.chromium.chrome.browser.preferences.MainPreferences.onResume(MainPreferences.java:70)
android.app.Fragment.performResume(Fragment.java:1743)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:924)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1044)
android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1863)
android.app.Activity.performResume(Activity.java:5332)
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2759)
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2798)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1439)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4998)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
dalvik.system.NativeStart.main(Native Method)

Second call:
org.chromium.chrome.browser.preferences.SignInPreference.update(SignInPreference.java:148)
org.chromium.chrome.browser.preferences.SignInPreference.syncStateChanged(SignInPreference.java:175)
org.chromium.chrome.browser.sync.ProfileSyncService.syncStateChanged(ProfileSyncService.java:419)
org.chromium.chrome.browser.sync.ProfileSyncService.nativeSetSetupInProgress(Native Method)
org.chromium.chrome.browser.sync.ProfileSyncService.setSetupInProgress(ProfileSyncService.java:395)
org.chromium.chrome.browser.signin.AccountManagementFragment.onDestroy(AccountManagementFragment.java:175)
android.app.Fragment.performDestroy(Fragment.java:1913)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1044)
android.app.FragmentManagerImpl.dispatchDestroy(FragmentManager.java:1881)
android.app.Activity.performDestroy(Activity.java:5414)
android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1117)
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3465)
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3496)
android.app.ActivityThread.access$1300(ActivityThread.java:135)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1450)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4998)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
dalvik.system.NativeStart.main(Native Method)


Project Member

Comment 2 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a22fcd0dd4dcd32fa2e60eb7eb7552aff88bc10

commit 1a22fcd0dd4dcd32fa2e60eb7eb7552aff88bc10
Author: bsazonov <bsazonov@chromium.org>
Date: Tue Apr 11 16:12:22 2017

Fix duplicated records of Signin_Impression_FromSettings action

This CL changes conditions for recording Signin_Impression_FromSettings user
action.
Before: user action is recorded on every call to update() if user
isn't signed in and policy allows sign in.
After: subsequent calls to update() don't result in new records if preference
was already in "not signed in" state.

BUG= 697572 

Review-Url: https://codereview.chromium.org/2800343003
Cr-Commit-Position: refs/heads/master@{#463645}

[modify] https://crrev.com/1a22fcd0dd4dcd32fa2e60eb7eb7552aff88bc10/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java

Comment 3 by ew...@chromium.org, Apr 12 2017

Great, thanks Boris! Once you verify on Canary, feel free to mark as Fixed.
Status: Fixed (was: Started)
Checked on Chrome Canary 60.0.3073.3.

Sign in to add a comment