Skip to content

Add the jco-browser conformance targets on the upstream page driver - #35

Merged
lann merged 1 commit into
mainfrom
jco-browser-targets
Aug 7, 2026
Merged

Add the jco-browser conformance targets on the upstream page driver#35
lann merged 1 commit into
mainfrom
jco-browser-targets

Conversation

@lann

@lann lann commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Fixes #32. First consumer of polymorph-test#71/#72 (the #59 browser half) — the seam test that design was deferred for, and it held:

  • run-browser.mjs is pure frame (~90 lines): core-URL enumeration, the two target configs, results writing via ./node-runner. Everything else — page HTML, import-map/self-mount, worker pool, suite-order restoration, heartbeat/stall watchdog, Chrome ladder — is the upstream ./browser-driver + in-page modules.
  • browser-imports.mjs is the one genuinely local browser piece: the import object by server path (workers can't see import maps; harness core via the driver's /__component-test self-mount, fork preview2-shim via this tree's node_modules/…/dist/browser/).
  • Targets: jco-browser + jco-browser-delegated, optional = true — gate in CI (system Chrome on the runner image), local opt-in CONFORMANCE_BROWSER=1, stale-results cleared on the skip path (the webcrypto predicate pattern).
  • The matrix is now seven columns with identical verdicts across wasmtime, Node/JSPI, and headless Chromium — the family triangle, complete for tls.

Verified locally with the browser leg: CONFORMANCE_BROWSER=1 just conformance — 7 targets, 42 results, 0 failing, committed matrix updated; just check.

The pin moves to 2436bb9 via pins bump, picking up polymorph-test#71
and #72 — the browser page driver (#59's browser half), of which this
repository is the first consumer: run-browser.mjs is only the frame
(core-URL enumeration, target configuration, results writing) over the
upstream buildHarnessPage/runPageHarness/findChrome, the in-page pool,
and the generic shard worker; browser-imports.mjs supplies the import
object by server path (module workers cannot see import maps — the
harness core arrives through the driver's self-mount, the wasi shims
through this tree's node_modules).

Two optional targets: jco-browser and jco-browser-delegated gate in CI
(the Actions image ships Chrome) and run locally under
CONFORMANCE_BROWSER=1. The committed matrix grows to seven columns —
identical verdicts across wasmtime, Node/JSPI, and Chromium.

Verified: CONFORMANCE_BROWSER=1 just conformance green (7 targets,
42 results, 0 failing); just check green.

Fixes #32.
@lann
lann merged commit 5e600b0 into main Aug 7, 2026
4 checks passed
@lann
lann deleted the jco-browser-targets branch August 7, 2026 21:52
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.

Conformance: jco-browser targets (deferred until the shared browser page driver exists)

1 participant