Storybooks for commit defddce4976460d35a241db75b05468ba7dd0e4b

Date
8/31/2026, 8:45:45 PM UTC
Summary
feat(pairing): configurable iOS scheme and v2 iOS E2E coverage
Description
Because:
- Every Firefox iOS flavour registers `firefox://`, so a hardcoded scheme
  cannot reach a local build when a release install is also present.
- The v2 `pair_oauth_start` round trip does not fit the default WebChannel
  deadline on a cold start, and timing out there fails the whole pairing.
- v2 pairing against a real Firefox iOS supplicant had no coverage.

This commit:
- Adds a `pairing.ios_url_scheme` setting, surfaced as
  `config.pairing.iosUrlScheme`, and builds the iOS hand-off link from it.
- Names the pairing OAuth timeout `PAIR_OAUTH_TIMEOUT_MS` and exports it
  with the default, so the channel tests stop copying the numbers.
- Adds `pairingFlowV2iOS.spec.ts` and `lib/ios-supplicant.ts`, driving a
  Simulator supplicant against a Marionette authority.
- Restricts the v2 iOS and Android pairing specs to the local target.
- Lets the dev launcher and test targets reach a stack off localhost.

Co-Authored-By: Matt Lichtenstein <lichtensteinmp@gmail.com>