Skip to content

Gate the Chromium WPT parity legs in CI on Playwright's pinned build - #36

Merged
lann merged 1 commit into
wpt-parity-stable-locationfrom
wpt-parity-chromium-ci
Aug 6, 2026
Merged

Gate the Chromium WPT parity legs in CI on Playwright's pinned build#36
lann merged 1 commit into
wpt-parity-stable-locationfrom
wpt-parity-chromium-ci

Conversation

@lann

@lann lann commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Closes #35. Stacked on #34 (the stable ratchet keys and the recorded
losses-chromium.js this gate requires); retarget to main once #34
merges.

Change

Adopts the webcrypto sibling's pattern for browser parity gates:

  • Pinned engine, everywhere. run-browser.mjs always launches
    Playwright's own Chromium build (pinned by playwright-core's version
    in the parity lockfile) instead of discovering a system Chrome, so
    the loss set measures one engine in local runs and CI alike, and a
    Chromium behavior shift arrives only with a deliberate playwright
    bump — the ratchet-ownership concern from Decide whether the Chromium WPT parity gate enters CI #35. scripts/chrome.mjs
    stays with the conformance jco-browser leg, which prefers the
    runner's Chrome on purpose.
  • CI wiring. The conformance job caches ~/.cache/ms-playwright
    keyed on js/componentize/wpt/parity/pnpm-lock.yaml (webcrypto's
    scheme: restore-keys let a bump download only what changed;
    --with-deps runs only on a cache miss) and installs Chromium with
    npx playwright-core install. gha::conformance-checks gains the
    wpt::parity-chromium step, keeping just ci exactly CI.
  • Doc notes in the wpt justfile and README updated accordingly.

Not ported from webcrypto: the Firefox and WebKit engines and the
shared watchdog page driver — separate work if ever wanted; this repo's
runner has one engine today.

Verification

Adopt the webcrypto sibling's pattern: the parity browser legs always
launch Playwright's own Chromium build, pinned by playwright-core's
version in the parity lockfile, so losses-chromium.js measures one
engine everywhere — local runs and CI alike — and a Chromium behavior
shift arrives only with a deliberate playwright bump, never with a
runner-image update. run-browser.mjs drops the system-Chrome discovery
(findChrome stays with the conformance jco-browser leg, which prefers
the runner's Chrome on purpose).

The conformance job installs the pinned browser with a cache keyed on
the parity lockfile (restore-keys let a bump download only what
changed; --with-deps only on a cache miss), and conformance-checks
gains the wpt::parity-chromium step.

Verified: just wpt::parity-chromium green on the pinned build (Chrome
for Testing 151 / chromium-1234) with the same empty loss set;
just ci green end to end.

Closes #35
@lann
lann merged commit 233314b into wpt-parity-stable-location Aug 6, 2026
2 checks passed
@lann
lann deleted the wpt-parity-chromium-ci branch August 6, 2026 23:46
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