packages/cua-driver/docs/browser-cross-platform-hardening-journal.md
This journal records implementation and validation evidence for the browser support hardening branch. It is not a public support contract.
origin/main commit 6b6ad1e0.dom_event delivery is a distinct explicit route, not trusted input.CUA_E2E_BROWSER_PRODUCTS selection. Explicit certification
sets fail on unknown, duplicate, or missing products; the historical default
selection is unchanged.browser-provenance.jsonl artifact populated from each
launched browser's CDP version endpoint. Hosted lanes now declare their exact
mandatory product list instead of using a broader display label.portal-input, matching
the published artifact instead of misclassifying GNOME/KDE through a
default-feature binary that can only fall back to wtype.XDG_SESSION_TYPE=wayland plus WAYLAND_DISPLAY authoritative for the
standalone runner and browser launch. GNOME/KDE retain DISPLAY for
XWayland, but that no longer sends a native Wayland lane through X11 window
enumeration or launches its browser on XWayland.cargo test -p cua-driver-core browser::: 132 passed, 0 failed.cargo test -p cua-driver-testkit: 49 passed, 0 failed.cargo test -p cua-driver --test standalone_browser_behavior_test --no-run:
compiled successfully at the current working tree.cargo test -p platform-linux --no-default-features: platform code compiled
on macOS. The release-equivalent portal-input build compiled on GNOME and
completed the canonical browser matrix below.2ca38aea: 13 delivered, 3
expected policy refusals, 0 failures, 0 skips, and 16 playable videos. This
accepts the GNOME helper route for Chrome without making a generic Wayland
claim.2ca38aea: 13 delivered, 3 expected
policy refusals, 0 failures, 0 skips, and 16 playable videos.2ca38aea: 26
delivered, 6 expected policy refusals, 0 failures, 0 skips, and 32 playable
videos. Together these runs accept Chrome, Chromium, and Edge on Sway.2ca38aea: 13 delivered, 3 expected
policy refusals, 0 failures, 0 skips, and 16 playable videos. Snap Chromium
could not start its CDP endpoint in an SSH-created Xvfb session because the
snap required a real login-session cgroup; that preflight failure is not a
Cua Driver behavioral result.f3413ac0: 140 delivered, 8
expected refusals, 0 failures, 0 skips, and playable video for every declared
row. Later branch changes before 2ca38aea affect only Linux test paths.2f48888d: one real Chromium existing-profile
setup attempt refused with browser_route_unavailable, 0 failures, 0 skips,
and playable video. The harness retained Sway IPC only as an out-of-band
focus and z-order oracle; the Cua Driver child received an unusable socket
path and could not use compositor-specific identity.75c40845: the corrected Chrome
row completed setup, exact attachment, typed navigation, external fixture
mutation, and video/report validation with no failure or skip.86d799b8: 26
delivered, 4 expected policy refusals, 0 failures, 0 skips, and 30 playable
videos. Both ordinary-profile setup and isolated-profile launch passed for
both products after the harness began from an ordinary about:blank window
and navigated through the prepared browser route.a22840a4: existing-profile
setup passed for Chrome and Edge, and isolated-profile launch passed for
Edge. Chrome isolated launch encountered one transient
ERR_HTTP_RESPONSE_CODE_FAILURE; an immediate clean retry and three further
consecutive runs all delivered with videos and complete fixture journals.
No assertion was relaxed and no retry was added to the harness.a22840a4: existing-profile
setup and isolated-profile launch delivered for Chrome and Edge, with 4
playable videos and no failure or skip.b1838255: the canonical runner
completed 13 delivered rows, 3 expected policy refusals, 0 failures, 0
skips, and 16 playable videos. This run used the release-equivalent
portal-input feature and native Wayland even though GNOME also exported an
XWayland DISPLAY.b1838255:
13 delivered, 3 expected policy refusals, 0 failures, 0 skips, and 16
playable videos.b1838255:
28 delivered, 2 expected policy refusals, 0 failures, 0 skips, and 30
playable videos.dom_event delivery is
available when a synthetic event satisfies the caller's contract.