-
Notifications
You must be signed in to change notification settings - Fork 927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pixels for importing google passwords metrics #5284
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
2a4356e
to
d9b11c1
Compare
f6fa1d8
to
ba4e8c5
Compare
d9b11c1
to
720a9dc
Compare
ba4e8c5
to
ef5e18b
Compare
720a9dc
to
c1cc10b
Compare
adc52be
to
18d3de2
Compare
@@ -33,7 +33,14 @@ interface AutofillImportPasswordConfigStore { | |||
data class AutofillImportPasswordSettings( | |||
val canImportFromGooglePasswords: Boolean, | |||
val launchUrlGooglePasswords: String, | |||
val canInjectJavascript: Boolean, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as discussed, adding in ability to selectively disable just the JS injection
val javascriptConfigGooglePasswords: String, | ||
val urlMappings: List<UrlMapping>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for determining where in the webflow cancellation took place, we need to map URLs to a known string. there will be default mappings in place, but we can also override with remote config.
} else { | ||
terminateFlowAsCancellation(url ?: "unknown") | ||
} | ||
terminateFlowAsCancellation(url ?: "unknown") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
handling ENCRYPTED_PASSPHRASE_ERROR_URL
as another of the cancellation cases so don't need special treatment here for it
...l/src/main/java/com/duckduckgo/autofill/impl/engagement/store/AutofillEngagementBucketing.kt
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, everything works as expected.
Just a note, when reading in the latest scenario "Launch password import flow; verify you don't see any UI hints on which button to press", I was surprised because I didn't have hint in the previous scenarios. Let's review that tomorrow.
@@ -142,6 +142,15 @@ enum class AutofillPixelNames(override val pixelName: String) : Pixel.PixelName | |||
AUTOFILL_TOGGLED_ON_SEARCH("m_autofill_toggled_on"), | |||
AUTOFILL_TOGGLED_OFF_SEARCH("m_autofill_toggled_off"), | |||
|
|||
AUTOFILL_IMPORT_GOOGLE_PASSWORDS_EMPTY_STATE_CTA_BUTTON_TAPPED("autofill_import_google_passwords_import_button_tapped"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to add them to remove atb or similar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, keeping ATB et al.
c1cc10b
to
3ae18f9
Compare
18d3de2
to
097d049
Compare
Isolated the problem and fixed in #5295. this branch has been restacked on top, meaning if you test again you should see the hints working now. good spot! |
3ae18f9
to
d702bc0
Compare
097d049
to
f0972ee
Compare
f0972ee
to
90c8690
Compare
Task/Issue URL: https://app.asana.com/0/608920331025315/1208787586139232/f
Description
Adds metrics around the import password flow. To support this in a flexible way, it also allows for the url mappings to be defined remotely for which stage of the flow a user dropped out at if they didn't go all the way through; if we ever need to, can override the default url mappings.
Logcat filter:
message~:"Pixel sent: autofill_import_google_passwords"
Steps to test this PR
Setup
Cancelling the user journey
Passwords
screen, and verifyautofill_import_google_passwords_import_button_shown
in logs for the import password button being shownImport Passwords From Google
button; verifyautofill_import_google_passwords_import_button_tapped
in logsautofill_import_google_passwords_preimport_prompt_displayed
in logsautofill_import_google_passwords_result_user_cancelled
in logsImport Passwords From Google
button again.Open Google Passwords
button; verifyautofill_import_google_passwords_preimport_prompt_confirmed
in logsautofill_import_google_passwords_result_user_cancelled
in logs, withstage=webflow-pre-login
Sign in
button. Then ✖️ to exit the flow; verifyautofill_import_google_passwords_result_user_cancelled
withstage=webflow-authenticate
autofill_import_google_passwords_result_user_cancelled
withstage=webflow-post-login-landing
autofill_import_google_passwords_result_user_cancelled
withstage=webflow-export
autofill_import_google_passwords_result_user_cancelled
withstage=webflow-authenticate
Succeeding
autofill_import_google_passwords_result_success
, with the correct bucket forsaved_credentials
andskipped_credentials
based on bucket rules defined hereskipped_credentials
bucket is accurate.Overflow menu
Import Passwords From Google
will appear in the overflow menu. Tap on that. Verifyautofill_import_google_passwords_overflow_menu_tapped
andautofill_import_google_passwords_preimport_prompt_displayed
in logsEncrypted passphrase scenario
autofill_import_google_passwords_result_user_cancelled
withstage=webflow-passphrase-encryption
CSV parsing scenario
autofill_import_google_passwords_result_parsing
in logs.URL mapping via remote config
urlMappings
that the mappings from the patched jsonblob are used and override the local defaults.Selectively disabling JS injection