Because:
- Playwright 1.44.1 bundles a Firefox too old to exercise the keys_optional
(Sync decoupling) capability landed in Firefox 147+.
- Hardcoded ?context=fx_desktop_v3&service=sync entry no longer completes the
fxa_status/OAuth WebChannel handshake on current Firefox, so Sync tests fail.
This commit:
- Bumps @playwright/test to 1.61.1 (and yarn.lock).
- Adds lib/sync-helpers.ts gotoSyncSession() to centralize Sync-session
initiation via /pair so a future entry change is a one-line edit.
- Routes desktop Sync sign-in/up tests through gotoSyncSession so real Firefox
drives the handshake (syncV3, oauth/syncSignIn, key-stretching-v2,
react-conversion, misc/recoveryKeyPromoInline).
- Adds keys_optional SmartWindow cached-signin assertions in oauth/syncSignIn.
- Adds respondToWebChannelMessageAlways() and consolidates both WebChannel
responders into a shared installWebChannelResponder() in pages/layout.ts.
- Rewrites vpnIntegration and passkeyPasswordFallback to simulate a pre-147
browser (no keys_optional) via the pages fixture + fxa_status mock, so they
still exercise the not-decoupled password/fallback path.
- Hardens TOTP QR screenshot decode with a retry to fix change-2FA flakiness.
- Marks the admin account-by-email test fixme (Stripe/subscription dependency).