Skip to content

Fxa 13869 - #21078

Draft
vbudhram wants to merge 3 commits into
fxa-13870from
fxa-13869
Draft

Fxa 13869#21078
vbudhram wants to merge 3 commits into
fxa-13870from
fxa-13869

Conversation

@vbudhram

Copy link
Copy Markdown
Contributor

No description provided.

dschom and others added 3 commits August 14, 2026 13:12
Because:
- We want to do a preliminary check that the new paring.version pref added to Firefox works
- We want to do a preliminary check that the new `fxaccounts:pair_oauth_start` wc cmd works
- We want to do a preliminary check that the new `fxaccounts:pair_oauth_finish` wc cmd works

This Commit:
- Wires pair2 routes!
- Adds config to signal desired pairing version in fxa, `config.pairing.version`. Default to 1 for now.
- Checks fxaStatus webchannel message for pairing.version == 2 and that FxA has paring.version == 2. If so routes to the scan_qr page.
- Alternatively, checks for the `v=2` query param on CAD and navigates users to the scan qr page.
- Adds support for the new web-channel command to `firefox.ts`
- Excercises the new web channel commands in `/poc_pair_start` as a sanity check that they stuck.
Because:
- FXA-13870 needs functional tests for the v2 pairing flow, and the v2
  supplicant flow did not complete end to end on Firefox for Android.

This commit:
- forwards /pair/supp with the v2 marker into the v2 supplicant pages,
  the route Firefox opens on the device.
- consumes the OAuth params from the URL when the browser already ran
  OAuth-start, and falls back to pair_oauth_start otherwise.
- restores scope spaces the router encodes as "+" so the authority
  delivers the oldsync scoped key and a session token.
- adds v2 pairing functional tests (desktop, Android, negative, version
  gating, web-channel) with Marionette and supplicant harnesses.
Because:
- FXA-13869 needs the v2 pairing flow to end cleanly on a timeout or a
  cancel, close the channel, and tell the user why.

This commit:
- adds a supplicant timeout_and_cancel container and passes the reason to
  the authority container, so both dead-end screens show timeout or canceled.
- sends reason=canceled from cancel buttons and reason=timeout from channel
  disconnects and the no-scan inactivity timeout.
- adds Jest tests for both containers and for the channel teardown on reset.
@vbudhram vbudhram self-assigned this Aug 20, 2026
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