Skip to content

Make onboarding quick-setup permanent and remove A/B experiment code and the previous skip onboarding step#9181

Open
catalinradoiu wants to merge 3 commits into
developfrom
feature/cradoiu/implement-quick-setup-experiment
Open

Make onboarding quick-setup permanent and remove A/B experiment code and the previous skip onboarding step#9181
catalinradoiu wants to merge 3 commits into
developfrom
feature/cradoiu/implement-quick-setup-experiment

Conversation

@catalinradoiu

@catalinradoiu catalinradoiu commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/project/1211724162604201/task/1216556402381460?focus=true
Tech Design URL (if applicable):

Description

The onboardingQuickSetupExperimentJun3 A/B experiment won, so we're making the reinstaller quick-setup screen permanent and removing all the experiment machinery.

Previously the quick-setup screen was shown only to the TREATMENT cohort for reinstallers / sync-restore users who tapped "I've been here before" and then skipped; the CONTROL cohort saw the old "skip onboarding option" screen (Start Browsing / Show Tutorial). The skip path now unconditionally switches to the quick-setup plan. Now we deleted the experiment manager, the OnboardingQuickSetupToggles feature toggle, and the search-retention metrics plugin and all re-installers who skip the oboarding are routed through the quick setup.

Steps to test this PR

Reinstaller skip path always shows quick-setup

  • Launch the app as a returning user
  • Tap "I've been here before" and choose to skip onboarding.
  • Verify the quick-setup screen is shown (address-bar position + search options + set-as-default / add-widget rows) every time
  • Confirm quick-setup; verify onboarding ends and you land on the new tab page.

Legacy welcome page unaffected (brand-design update off)

  • With the brand-design update flow disabled, verify the returning-user skip path still shows the old "skip onboarding option" screen (Start Browsing / Show Tutorial) and both options still work.

UI changes

No UI changes


Note

Medium Risk
Changes first-run onboarding routing for returning users and removes experiment gating; wrong wiring could skip quick-setup or break reinstall/sync skip flows, though scope is limited to onboarding orchestration and telemetry.

Overview
After the quick-setup experiment won, reinstallers and sync-restore users who skip onboarding always go to the quick-setup screen instead of an A/B fork between quick-setup and the old “Start Browsing / Show Tutorial” step.

The skip-onboarding option plan, dialog, events, and UI animations are removed from the brand-design onboarding flow. skipFork and experiment enrollment are deleted along with OnboardingQuickSetupExperimentManager, OnboardingQuickSetupToggles, the search-retention metrics plugin, and the onboardingQuickSetup remote-config feature. Related pixels (ONBOARDING_SKIP_ONBOARDING, confirm/resume preonboarding pixels) and unused strings are dropped.

E2E no longer patches remote config to disable the experiment. Tests are updated so skip paths assert quick-setup only.

Reviewed by Cursor Bugbot for commit 4978f9c. Bugbot is set up for automated code reviews on this repo. Configure here.

The onboardingQuickSetupExperimentJun3 A/B experiment won, so the
reinstaller quick-setup screen is now shown unconditionally on the
skip path (reinstallers / sync-restore users who tap "I've been here
before" and skip). Removes the experiment manager, feature toggle, and
the search-retention metrics plugin, drops the skipFork branching so
the skip path always switches to the quick-setup plan, and cleans up
the now-dead "skip onboarding option" code in the new orchestrator
flow. The shared PreOnboardingDialogType.SKIP_ONBOARDING_OPTION, its
pixels, and the legacy WelcomePage flow are kept untouched. Also
removes the experiment entry from the local privacy config and the
e2e disable-patch plus its CI flag, and updates the affected unit
tests.

Task: https://app.asana.com/1/137249556945/project/1211724162604201/task/1216556402381460?focus=true

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown
Contributor Author

@catalinradoiu
catalinradoiu marked this pull request as ready for review July 15, 2026 05:49
@catalinradoiu catalinradoiu changed the title Make onboarding quick-setup permanent; remove A/B experiment Make onboarding quick-setup permanent and remove A/B experiment code Jul 15, 2026
@catalinradoiu catalinradoiu changed the title Make onboarding quick-setup permanent and remove A/B experiment code Make onboarding quick-setup permanent and remove A/B experiment code and the previous skip onboarding step Jul 15, 2026
catalinradoiu added a commit that referenced this pull request Jul 16, 2026
…s skip-onboarding tests (#9200)

Task/Issue URL:
https://app.asana.com/1/137249556945/project/1211724162604201/task/1214735718762065?focus=true
Tech Design URL (if applicable):

### Description

The returning-user "I've been here before" flow now leads to the quick
setup screen (address bar position, search options, default browser,
widget) instead of the old tutorial/start-browsing dialogs. The two
release-blocking Maestro tests asserting the old dialog copy no longer
match the app's behavior, so this replaces them with coverage of the new
quick setup flow:

- `preonboarding_returning_user_quick_setup_customize.yaml` — selects
bottom address bar position and "search only", sets DuckDuckGo as
default, then taps Start Browsing and asserts the address bar renders at
the bottom of the screen.
- `preonboarding_returning_user_quick_setup_start_browsing.yaml` — taps
Start Browsing without customizing anything.

Both are gated behind a new remote config patch
(`remote_config_patches/enable_onboarding_quick_setup_experiment_treatment.json`)
that forces the `onboardingQuickSetupExperimentJun3` cohort to
treatment. The patch will be removed once
#9181 is merged.


### Steps to test this PR

Maestro cloud run:
https://app.maestro.dev/project/proj_01htg54rdtfwx8rgbzv03cxkpf/maestro-test/app/app_01hkqhj1thevwtn9ym8a2ctn2r/upload/mupload_01kxngkd87e9694n996dcc2162

_Maestro coverage_
- [x] Build an internal APK with the config patch applied: `./gradlew
installInternalRelease
-Pconfig_patches=.maestro/onboarding/remote_config_patches/enable_onboarding_quick_setup_experiment_treatment.json`
- [x] Run `maestro test
.maestro/onboarding/preonboarding_returning_user_quick_setup_customize.yaml`
and confirm it passes, including the new bottom-address-bar assertion
after Start Browsing
- [x] Run `maestro test
.maestro/onboarding/preonboarding_returning_user_quick_setup_start_browsing.yaml`
and confirm it passes


### UI changes
| Before  | After |
| ------ | ----- |
| No UI changes | No UI changes |

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Changes are limited to Maestro flows and nightly CI config; no
production app logic.
> 
> **Overview**
> Updates **Maestro** coverage for the returning-user **“I’ve been here
before”** path now that it lands on **quick setup** instead of the old
skip/tutorial dialogs.
> 
> **Removes** `preonboarding_returning_user_show_tutorial.yaml` and
`preonboarding_returning_user_start_browsing.yaml` (they asserted
obsolete copy). **Adds**
`preonboarding_returning_user_quick_setup_start_browsing.yaml` and
`preonboarding_returning_user_quick_setup_customize.yaml`, tagged
`onboardingNonReleaseBlockingTest`, covering Start Browsing as-is and a
customize path (address bar position, search-only, default browser) with
a bottom-toolbar assertion after launch.
> 
> **CI:** Nightly non-blockers workflow applies
`enable_onboarding_quick_setup_experiment_treatment.json` via
`-Pconfig_patches` (forces `onboardingQuickSetupExperimentJun3` to
treatment) and runs a new **Onboarding** Maestro job with that tag.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
f70eb79. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
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.

1 participant