Skip to content
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

New autofill onboarding for existing DDG users #3170

Merged
merged 34 commits into from
Aug 9, 2024

Conversation

graeme
Copy link
Contributor

@graeme graeme commented Jul 31, 2024

Task/Issue URL: https://app.asana.com/0/72649045549333/1207502458693789/f
CC:

⚠️ There's some Pixels and a feature flag that will be merged from a stacked PR into this one before merging to main ⚠️

Description:

We're turning on autofill for all existing users who have not already. To do this, we're making some improvements to the first Save Login prompt to better onboard users. Furthermore, we're making some tweaks to the logic to make sure we:

  • Don't show this prompt to users established to be "existing autofill users"
  • Show the new Save Login prompt until they either save a login or have seen the prompt on how to disable autofill
  • Show a new less intrusive prompt after they've declined autofill twice on 2 websites

Steps to test this PR:

  1. Install a clean build to reset all state OR Go to ... → Settings ... → All debug options → Autofill Settings → Reset Autofill Data
  2. Go to https://fill.dev/form/login-simple, enter some random details and hit save
  3. You will see the onboarding prompt. Dismiss the prompt
  4. Go to any other page with a different domain and log in
  5. You will see the disable prompt.
  6. Reset your state (see step 1)
  7. Manually save a log-in using the autofill management screen
  8. Repeat steps 2-4 and confirm you don't see the disable prompt.
  9. Reset your state (see step 1)
  10. Add a password to another device (e.g macOS)
  11. Follow the Sync flow to pull that password in to your iOS test device
  12. Repeat step 2-4 and confirm you don't see the disable prompt
  13. Reset your state (see step 1)
  14. Manually turn autofill off and on
  15. Repeat step 2-4 and confirm you don't see the disable prompt

Definition of Done (Internal Only):

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than '

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPhone 14 Pro
  • iPad

OS Testing:

  • iOS 15
  • iOS 16
  • iOS 17

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template

Copy link

github-actions bot commented Jul 31, 2024

Warnings
⚠️ PR has more than 500 lines of code changing. Consider splitting into smaller PRs if possible.
Messages
📖

You seem to be updating localized strings. Make sure that you request translations and include translated strings before you ship your change. See Localization Guidelines for more information.

Generated by 🚫 dangerJS against 14b7119

@graeme graeme marked this pull request as ready for review August 2, 2024 13:34
@graeme graeme requested a review from amddg44 August 2, 2024 13:34
Copy link
Contributor

@amddg44 amddg44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice work!

graeme added 6 commits August 7, 2024 17:55
Task/Issue URL: https://app.asana.com/0/0/1207868278261135/f

**Description**:
- Adds a feature flag for gradual roll-out of the enabling of autofill
for existing DDG users who hadn't already used it.
- Adds Pixels to monitor the performance of the changes made in
#3170
- For Pixel definitions
https://app.asana.com/0/414235014887631/1207868278261135/f


**Steps to test this PR**:
**For the Pixels:**
1. Install a clean build
2. Go to fill.dev/form/login-simple and submit some details
3. Check that you see the
`autofill.logins.save.login.inline.onboarding.displayed` pixel in the
debugger
4. Dismiss the prompt by pressing the x or swiping down
5. Check that you see the
`autofill.logins.save.login.inline.onboarding.dismissed` pixel in the
debugger
6. Repeat step 2
7. Tap Save Password
8. Check that you see the
`autofill.logins.save.login.inline.onboarding.confirmed` pixel in the
debugger
9. Repeat steps 1 and 2
10. Tap the "Never for this website" button
11. Check that you see the
`autofill.logins.save.login.onboarding.exclude.site.confirmed` pixel in
the debugger
12. Go to any other website with a login and log in
13. Tap either dismiss or "Never for this website"
14. Check that you see the `autofill.logins.save.disable.snackbar.shown`
pixel in the debugger
15. Tap the "Open Settings" button
16. Check that you see the
`autofill.logins.save.disable.snackbar.open.settings` pixel in the
debugger and...
17. Check that you see the `m.autofill.management.opened ["source":
"save_login_disable_prompt"]` pixel in the debugger
18. Disable autofill
19. Check that you see the `m.autofill.logins.settings.disabled
["source": "save_login_disable_prompt"]` pixel in the debugger

**Definition of Done (Internal Only)**:

* [ ] Does this PR satisfy our [Definition of
Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)?

**Copy Testing**:

* [ ] Use of correct apostrophes in new copy, ie `’` rather than `'`

**Orientation Testing**:

* [ ] Portrait
* [ ] Landscape

**Device Testing**:

* [ ] iPhone SE (1st Gen)
* [ ] iPhone 8
* [ ] iPhone X
* [ ] iPhone 14 Pro
* [ ] iPad

**OS Testing**:

* [ ] iOS 15
* [ ] iOS 16
* [ ] iOS 17

**Theme Testing**:

* [ ] Light theme
* [ ] Dark theme

---
###### Internal references:
[Software Engineering
Expectations](https://app.asana.com/0/59792373528535/199064865822552)
[Technical Design
Template](https://app.asana.com/0/59792373528535/184709971311943)
@graeme graeme merged commit d3bb651 into main Aug 9, 2024
13 checks passed
@graeme graeme deleted the graeme/turn-autofill-on-with-new-onboarding branch August 9, 2024 17:25
samsymons added a commit that referenced this pull request Aug 12, 2024
# By Sam Symons (3) and others
# Via Chris Brind (2) and others
* main:
  DuckPlayer contingency messages pixels (#3220)
  New autofill onboarding for existing DDG users (#3170)
  Add translations for DuckPlayer contingency messge (#3215)
  Fix PrivacyProDataReporter crash due to premature secure vault use (#3217)
  Bump rexml from 3.2.9 to 3.3.3 (#3175)
  Bump submodules/privacy-reference-tests from `a603ff9` to `afb4f61` (#3165)
  [DuckPlayer] 16. Localization Updates (#3200)
  Release 7.132.0-3 (#3213)
  cherry pick temporary fix for https://app.asana.com/0/414235014887631/1207990702991361/f
  fix content inset when keyboard is visible (#3207)
  Ship review feedback for contingency message (#3209)
  Release 7.132.0-2 (#3211)
  Restore attribution flag (#3197)
  Restore attribution flag (#3197)
  Release 7.132.0-1 (#3208)
  Break DuckPlayer ref cycle (#3206)
  Show improved Dax onboarding on New Tab Page (#3203)

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
graeme added a commit that referenced this pull request Aug 12, 2024
Task/Issue URL:
https://app.asana.com/0/72649045549333/1208034442264186/f

**Description**:

#3170 was merged without all
localised strings being translated. This adds the translations imported
from Smartling during the job `graeme_autofill_onboarding_all_users`

**Steps to test this PR**:
1. Change the language on your phone to any non-english
2. Install a clean build to reset all state OR Go to ... → Settings ...
→ All debug options → Autofill Settings → Reset Autofill Data
3. Go to https://fill.dev/form/login-simple, enter some random details
and hit save
4. You will see the onboarding prompt. **Check it's localized.** Dismiss
the prompt
5. Go to any other page with a different domain and log in
6. You will see the disable prompt. **Check it's localized.**

**Definition of Done (Internal Only)**:

* [ ] Does this PR satisfy our [Definition of
Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)?

**Copy Testing**:

* [ ] Use of correct apostrophes in new copy, ie `’` rather than `'`

**Orientation Testing**:

* [ ] Portrait
* [ ] Landscape

**Device Testing**:

* [ ] iPhone SE (1st Gen)
* [ ] iPhone 8
* [ ] iPhone X
* [ ] iPhone 14 Pro
* [ ] iPad

**OS Testing**:

* [ ] iOS 15
* [ ] iOS 16
* [ ] iOS 17

**Theme Testing**:

* [ ] Light theme
* [ ] Dark theme

---
###### Internal references:
[Software Engineering
Expectations](https://app.asana.com/0/59792373528535/199064865822552)
[Technical Design
Template](https://app.asana.com/0/59792373528535/184709971311943)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants