feat(browser): add versioned WebDriver BiDi presentation boundary - #293
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Fresh authoritative re-check on 2026-09-07 supersedes my earlier correction in this comment. The canonical W3C latest-published URL now resolves to WebDriver BiDi Working Draft, 3 September 2026 ( The substantive capability finding remains and is confirmed against the 3 Sep draft: Fresh exact-head CI adds an independent code-current RED on |
|
Current-head execution/PR-state checkpoint — exact I returned this PR to Draft because the live tree and hosted evidence no longer match the body’s “test-only” checkpoint or a Ready state. CI Standards traceability also needs repair. A fresh canonical W3C check now resolves Existing #292 writer lease remains the source/docs owner. Preserve this executed RED and repair in that lane: repository workspace contract first; then test-first capability/traceability correction; then minimal production change and exact-head Rust/Python/coverage/Clippy/rustdoc evidence. Do not create an overlapping source writer, do not transfer predecessor/coverage-only GREEN, and keep this PR Draft until those findings are resolved. |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head standards/provenance finding for 9f11b0c8268890b0620c94b6975d461f67511afa: the new test pinned_revision_tracks_current_published_working_draft currently requires 2026-09-03, but 3 September 2026 is the WebDriver BiDi Editor’s Draft (https://w3c.github.io/webdriver-bidi/), not a W3C published Working Draft. W3C’s current standards/publication index identifies 18 August 2026 as the published WebDriver BiDi Working Draft (https://www.w3.org/TR/, WebDriver → WebDriver BiDi; see also https://www.w3.org/TR/webdriver-bidi/all/). This means the test-first head is about to force a provenance regression: production’s WEBDRIVER_BIDI_PRESENTATION_REVISION = "2026-08-18" is aligned with the published-WD contract named by its rustdoc, while the test and PR body mislabel a mutable Editor’s Draft date as “latest-published”.
Do not observe this assertion failing and then change production to 2026-09-03 under the existing Published WebDriver BiDi Working Draft revision contract. Repair the test/provenance first. If this adapter is intentionally pinned to W3C published snapshots, retain 2026-08-18 and re-derive the Screen/Languages/other complete-surface RED against that exact 18-August snapshot. If the product instead wants to consume the 3-September Editor’s Draft, make that a distinct explicit contract (EditorDraft provenance), pin an immutable upstream commit/snapshot rather than the mutable w3c.github.io head, and update ADR/TRACEABILITY accordingly. Do not mix capability claims from the Editor’s Draft into a published-WD version identifier.
The existing partial-surface concern remains independently valid in principle, but its acceptance evidence must be evaluated against the version actually named by the contract. This review is advisory, does not clear the Draft, and does not authorize source mutation while the repository-wide writer lease remains active.
seonghobae
left a comment
There was a problem hiding this comment.
Second exact-head standards finding after resolving the publication-date provenance: PresentationSurface::ReducedMotion also cannot remain in the 18 August 2026 published WebDriver BiDi complete-surface set. The current W3C published snapshot’s EmulationCommand union includes forced-colors, geolocation, locale, network conditions, screen orientation/settings, scripting, scrollbar, timezone, touch, and user-agent overrides, but has no emulation.setMediaFeaturesOverride; the published document also contains no prefers-reduced-motion. By contrast, the mutable Editor’s Draft has subsequently carried media-feature work. Current #293 production and its new test both still assert ReducedMotion is standard-BiDi-complete, so simply repairing the date assertion to 2026-08-18 would leave a version-mixed capability map.
Please make the next test-first repair version-coherent: for the PublishedWorkingDraft(2026-08-18) contract, remove ReducedMotion from webdriver_bidi_presentation_surfaces() as well as incomplete Screen and ordered Languages; keep Viewport, DevicePixelRatio, and TimeZone only where the exact 18-August normative commands fully cover the canonical OriginWeave surface semantics. Then re-evaluate the canonical MissingSurface(...) ordering against that exact set rather than hard-coding an error derived from a mixed-version map. If future work adopts media-feature emulation from an Editor’s Draft, that belongs behind separately pinned immutable EditorDraft provenance and browser-version evidence, not under the 18-August published-WD identifier.
Authoritative evidence: W3C Standards/Drafts index and BTT publication page list WebDriver BiDi Working Draft 18 August 2026; the current published /TR/webdriver-bidi/ command union has no media-features command and no reduced-motion token. This is a standards/capability provenance correction only; it does not authorize source mutation while the repository-wide writer lease is active.
seonghobae
left a comment
There was a problem hiding this comment.
Correction to my immediately preceding ReducedMotion review (5134344240): retract that finding. I verified the exact upstream Git history instead of relying on the stale /TR/ body cache. In w3c/webdriver-bidi, commit 1e5e36c43adbe24f2a4052c2ec091635c006c352 on 18 August 2026 is list media features (#1149); its parent already contains emulation.setMediaFeaturesOverride with a generic media-feature name/value shape, and the commit changes that shape to an explicit feature map including "prefers-reduced-motion": "no-preference" / "reduce" / null. The cached W3C /TR/ content I inspected was still rendering the 29-June document despite the publication index having advanced to 18 August, so it was not valid evidence that the 18-August snapshot lacked media-feature emulation.
Accordingly, do not remove ReducedMotion on the basis of review 5134344240. The first review (5134336501) remains valid: W3C’s fresh standards/publication index lists 18 August 2026 as the latest published Working Draft, so the current test’s 2026-09-03 “latest-published” assertion is a provenance error unless the contract is deliberately changed to an immutable Editor’s Draft pin. Screen and ordered Languages still require exact 18-August semantic comparison before changing their completeness classification. This correction preserves the upstream-history evidence and supersedes only the ReducedMotion claim.
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head refinement after checking the 18-August upstream source history: use an immutable specification identity, not a bare date, for the capability map. On 18 August itself, w3c/webdriver-bidi changed the media-feature CDDL at commit 1e5e36c43adbe24f2a4052c2ec091635c006c352 (list media features (#1149)): its parent already had emulation.setMediaFeaturesOverride with generic name/value entries, while that commit changed the same command to an explicit map containing prefers-reduced-motion. A date-only WEBDRIVER_BIDI_PRESENTATION_REVISION = "2026-08-18" therefore does not by itself prove which normative/source snapshot the adapter audited.
For the published-WD contract, bind provenance to the immutable W3C dated-TR identity (and record the upstream commit/digest used for doctoring if available), then derive the capability set from that exact snapshot. The same-day upstream source confirms two existing completeness concerns: emulation.ScreenArea contains only width and height, so it cannot certify OriginWeave’s canonical Screen surface if that surface also requires color depth; emulation.setLocaleOverride takes one locale string/null, so it cannot certify an ordered multi-language vector by itself. Conversely, prefers-reduced-motion is explicitly represented in the 18-August upstream media-feature work, so retain ReducedMotion unless the actual dated published snapshot proves otherwise.
Recommended test shape: assert (document_kind, immutable_spec_uri_or_digest) first, then assert semantic completeness per canonical PresentationSurface. Do not use a test named “tracks current published working draft”: a release-quality adapter must stay pinned even when W3C publishes a later draft. This supersedes the retracted ReducedMotion claim and sharpens review 5134336501; it does not authorize source mutation while another repository writer remains active.
|
Writer lease ACTIVE — fresh bounded lane for #293 standards/provenance repair at exact head |
|
Writer lease RELEASED — exact head |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh authoritative correction for exact f0a3b66a4ff3034d8a4e23e9b75ca2679fd0d3de: the current W3C publication record now unambiguously lists WebDriver BiDi Working Draft, 3 September 2026 as the latest published revision. The canonical /TR/webdriver-bidi/ cover page identifies https://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/ as “This version”, and W3C’s publication history lists 3 Sep, 1 Sep, 25 Aug, 24 Aug, then 18 Aug. Therefore the present WEBDRIVER_BIDI_PRESENTATION_REVISION = "2026-08-18" and pinned_revision_tracks_current_published_working_draft assertion are stale under their own “current published Working Draft” contract. This supersedes my later reviews 5134336501 / 5134344240, which incorrectly reclassified 3 Sep as Editor’s Draft-only; the earlier issue comments 5566991642 and 5568974198 had the publication state right.
The capability conclusion does not reverse with the date repair. In the dated 3 Sep WD, emulation.ScreenArea is still { width, height }, so standard BiDi still cannot satisfy #229’s coarse PresentationSurface::Screen invariant if that invariant also includes color depth. emulation.setLocaleOverride still takes one locale, so it still cannot certify the complete ordered Languages vector. Conversely, the dated 3 Sep WD does include emulation.setMediaFeaturesOverride with prefers-reduced-motion, so ReducedMotion should not be removed merely because of the superseded 18-Aug review.
Repair order: first restore a provenance RED requiring 2026-09-03 (or explicitly rename the contract if 18 Aug is intentionally a compatibility pin rather than “current published”); then update the publication/TRACEABILITY evidence without guessing source identity. The existing 1e5e36c... commit can remain historical evidence for the media-feature semantics it introduced, but it is not a same-day 3 Sep source snapshot. If a 3 Sep upstream SHA is required, establish its equivalence to the dated TR before promoting it; do not infer it only from commit date. After provenance is coherent, preserve the semantic RED that excludes complete Screen and Languages while retaining ReducedMotion, then make the minimal capability-map repair and obtain exact-head Rust/Python/coverage/Clippy/rustdoc evidence.
Current CI 34166151155 on this exact head is terminal skipped, so none of these assertions has executed on f0a3b66...; skipped is neither RED nor GREEN. Keep Draft. This review is advisory only and does not authorize source/docs mutation while the repository-wide writer lease is active.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 476a8e09aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Exact-head Rust contracts failure RCA is repaired in stacked #297. The root cause was the single non-canonical |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh exact-head governance review: this PR is currently Ready (draft=false) even though its own current body says “Keep this PR Draft,” the active source/docs/PR-state lease explicitly disallows a Ready transition, successor #297 is still Draft and carries the exact-head rustfmt repair, and two current Codex P2 review threads remain unresolved (presentation_capabilities.rs validated-command construction; top-level README/roadmap shipped-vs-planned alignment). Review 5141737889 also remains a separate application-completeness finding: the reusable planner accepts a full PresentationProfile while silently deferring reduced motion without a typed incomplete/deferred witness.
This is a premature-Ready / state-consistency repair finding, not a Close condition. The active lease owner should return #293 to Draft before further source/PR-state work, preserve #297 as the non-destructive successor for the formatting delta, then resolve the current P2/application-completeness findings and regenerate exact-head executable evidence. I am not converting state concurrently while that source/docs/PR-state lease is still recorded ACTIVE, and I am not approving, merging, rebasing, force-updating, or weakening any gate.
|
PR-state repair: exact head |
…9' into codex/bidi-application-completeness-20260909
…rmat-20260909 fix(bidi): restore canonical cleanup formatting
…-capabilities' into codex/bidi-application-completeness-20260909
|
Successor #298 advanced from |
…tract-repair-20260909 test(bidi): align media authority contract
…on-completeness-20260909 fix(bidi): make reusable application scope explicit
a517eb4
into
feat/privacy-presentation-identity
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d97c12e39
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| WebDriverBidiPresentationCommand::ResetViewport { | ||
| context: context.clone(), | ||
| }, | ||
| WebDriverBidiPresentationCommand::ResetTimezone { | ||
| context: context.clone(), |
There was a problem hiding this comment.
Preserve pre-existing overrides during reusable cleanup
When this cleanup is used on the advertised reusable browsing context that already carries a viewport/DPR or timezone override, ResetViewport and ResetTimezone remove that state and return to implementation defaults rather than restoring the prior values. Because the apply planner records neither the baseline nor exclusive ownership, apply followed by cleanup can silently destroy another owner's presentation configuration; require a disposable/owned context or capture and restore the validated prior values instead of emitting unconditional resets.
AGENTS.md reference: AGENTS.md:L63-L63
Useful? React with 👍 / 👎.
Current checkpoint for #292
Exact prerequisite remains #229
024f63690cf05cfe6f0d4a430f0e18ea8fd2c4d6. Exact current head is476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1. Keep this PR Draft.Capability boundary
Standard WebDriver BiDi claims only the four complete canonical surfaces
Viewport,DevicePixelRatio,TimeZone, andReducedMotion. Width/height alone do not prove #229’s completeScreensurface including color depth, and one locale does not prove the orderedLanguagesvector.Screen,Languages,HardwareConcurrency, andPlatformtherefore remain absent and complete-profile admission fails first withMissingSurface(Screen).The reusable-context branch plans two typed standard-BiDi application intents for one validated opaque browsing-context identifier: viewport+DPR and timezone. Reduced motion remains an expressible protocol capability but is not installed because standard cleanup cannot selectively restore prior media state. Planning performs no transport I/O and cannot mint acknowledgement, cleanup, ownership, or page-observed evidence.
Published-standard provenance — 2026-09-08
Fresh direct read of canonical
https://www.w3.org/TR/webdriver-bidi/identifies WebDriver BiDi Working Draft, 3 September 2026, immutable dated TRhttps://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/, with 1 September 2026 as the previous version. The same publication page separately linkshttps://w3c.github.io/webdriver-bidi/as the Editor’s Draft.The pinned WD confirms nullable reset paths:
browsingContext.setViewportcan restore default viewport/remove DPR override;emulation.setTimezoneOverridewithtimezone: nullremoves the applicable timezone override;emulation.setMediaFeaturesOverridewithfeatures: nullunsets the complete media-feature override configuration.Media-cleanup authority repair
Review
5139941850identified thatfeatures: nullis not a selective inverse forprefers-reduced-motion: it clears the target’s complete media-feature override configuration. The previous generic cleanup planner therefore carried destructive authority that was unsafe for a reusable context with unrelated pre-existing media overrides.The ordinary forward lineage now fails closed:
d885fa1ea05c7669564b56fc68c142461a92927erequires reusable application to exclude reduced-motion state that its cleanup cannot restore.c91636b2d25c4af3e01a65e3dd0f862664ecce7dchanges the reusable plan to viewport/DPR plus timezone only while retainingSetReducedMotionas an expressible protocol capability.7ccb610805023a130697fc46c8250778c900bc8eremoves the caller-mintableExclusivePresentationContextand destructive media-reset export; a type constructed by a caller is not Browser Session ownership evidence.476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1aligns ARCHITECTURE, CHANGELOG, ADR 0107, and doctoring with that source boundary.#292 must still prove in pinned Chromium that a Browser Session owner establishes and destroys a genuinely disposable user context/profile or restores the complete pre-existing media configuration, and it must observe post-cleanup browser state rather than trusting ACK.
Documentation repair on current head
Protected-source descriptions no longer claim three reusable commands or an implemented caller-attested exclusive reset. They distinguish the four standard protocol capabilities from the two symmetrically restorable reusable commands and keep reduced-motion application behind a separately proven Browser Session lifecycle.
This is source/docs consistency evidence, not an executed hosted browser or CI claim.
Evidence and remaining gates
Exact CI
34219091919foref263056...completed skipped while Draft. No exact-head hosted Rust/Python/Clippy/rustdoc/100%-coverage GREEN is claimed.After this source/docs repair, #292 still owns version-pinned real Chromium/BiDi/CDP application, request/ACK correlation, page-observed post-conditions, navigation/renderer/crash handling, post-cleanup observation, unsupported/partial-capability failures, disposable-context destruction or complete prior-state restoration evidence, and Chromium-specific remainder surfaces.
No generic DevTools/JavaScript pass-through, workflow/ruleset/secret change, self-approval, merge, tag, release, or publication claim belongs to this PR.
References
World Wide Web Consortium. (2026, September 3). WebDriver BiDi (W3C Working Draft). https://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/
World Wide Web Consortium. (2026). WebDriver BiDi (Editor’s Draft). https://w3c.github.io/webdriver-bidi/
W3C WebDriver BiDi Working Group source. (2026, August 18). list media features (#1149) (
1e5e36c43adbe24f2a4052c2ec091635c006c352). w3c/webdriver-bidi@1e5e36c