Skip to content

feat(browser): add versioned WebDriver BiDi presentation boundary - #293

Merged
seonghobae merged 58 commits into
feat/privacy-presentation-identityfrom
feat/webdriver-bidi-presentation-capabilities
Sep 9, 2026
Merged

feat(browser): add versioned WebDriver BiDi presentation boundary#293
seonghobae merged 58 commits into
feat/privacy-presentation-identityfrom
feat/webdriver-bidi-presentation-capabilities

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Current checkpoint for #292

Exact prerequisite remains #229 024f63690cf05cfe6f0d4a430f0e18ea8fd2c4d6. Exact current head is 476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1. Keep this PR Draft.

Capability boundary

Standard WebDriver BiDi claims only the four complete canonical surfaces Viewport, DevicePixelRatio, TimeZone, and ReducedMotion. Width/height alone do not prove #229’s complete Screen surface including color depth, and one locale does not prove the ordered Languages vector. Screen, Languages, HardwareConcurrency, and Platform therefore remain absent and complete-profile admission fails first with MissingSurface(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 TR https://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/, with 1 September 2026 as the previous version. The same publication page separately links https://w3c.github.io/webdriver-bidi/ as the Editor’s Draft.

The pinned WD confirms nullable reset paths: browsingContext.setViewport can restore default viewport/remove DPR override; emulation.setTimezoneOverride with timezone: null removes the applicable timezone override; emulation.setMediaFeaturesOverride with features: null unsets the complete media-feature override configuration.

Media-cleanup authority repair

Review 5139941850 identified that features: null is not a selective inverse for prefers-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:

  • d885fa1ea05c7669564b56fc68c142461a92927e requires reusable application to exclude reduced-motion state that its cleanup cannot restore.
  • c91636b2d25c4af3e01a65e3dd0f862664ecce7d changes the reusable plan to viewport/DPR plus timezone only while retaining SetReducedMotion as an expressible protocol capability.
  • 7ccb610805023a130697fc46c8250778c900bc8e removes the caller-mintable ExclusivePresentationContext and destructive media-reset export; a type constructed by a caller is not Browser Session ownership evidence.
  • 476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1 aligns 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 34219091919 for ef263056... 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

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: b0e945df-3039-4547-bb40-f97d6b10c93b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

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 (https://www.w3.org/TR/2026/WD-webdriver-bidi-20260903/), with 1 September 2026 listed as the previous version. The 18 August publication index result I previously relied on was stale relative to the canonical latest-published document. Therefore WEBDRIVER_BIDI_PRESENTATION_REVISION = "2026-08-18" is now stale unless this branch intentionally declares it as a compatibility pin and records the 18 Aug → 3 Sep delta. Treat this as a standards-traceability repair finding, not as evidence that the protocol semantics below changed.

The substantive capability finding remains and is confirmed against the 3 Sep draft: emulation.setScreenSettingsOverride still defines ScreenArea with only width and height; it has no colorDepth/pixelDepth override. Canonical #229 defines PresentationSurface::Screen as screen dimensions and color depth, so the standard-BiDi adapter must not certify the complete OriginWeave Screen invariant from this command alone. Likewise, emulation.setLocaleOverride still accepts a single locale, while #229 models ordered language preferences; Languages must not be promoted to complete parity without exact pinned-browser navigator.languages post-condition evidence.

Fresh exact-head CI adds an independent code-current RED on 0b0797c66f81f13fe72b709e2c1df0b6ec0026e8: run 34095314936 is terminal failure. Production coverage job 101657573334 passed, but Rust contracts job 101657573294 checked out the exact head and failed before Rust formatting/tests/Clippy/rustdoc in test_workspace_declares_all_independently_reusable_crates: root Cargo.toml now includes crates/originweave-bidi, while tests/test_repository_contract.py still freezes the older workspace set and omits that crate. The PR is therefore returned to Draft. The current #292 writer should repair this repository contract and the standards/capability semantics test-first; do not transfer the coverage job's success to whole-PR GREEN.

Copy link
Copy Markdown
Contributor Author

Current-head execution/PR-state checkpoint — exact 0b0797c66f81f13fe72b709e2c1df0b6ec0026e8.

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 34095314936 has now executed. Production coverage job 101657573334 is GREEN, but Rust contracts 101657573294 is RED after exact-head checkout: test_workspace_declares_all_independently_reusable_crates ran among 159 Python contracts and failed because root Cargo.toml contains new reusable member crates/originweave-bidi while tests/test_repository_contract.py still freezes the older workspace set and omits it. Rust formatting, workspace tests, Clippy and rustdoc were skipped after that failure. This is a direct code-current contract defect; coverage success is not whole-head GREEN.

Standards traceability also needs repair. A fresh canonical W3C check now resolves https://www.w3.org/TR/webdriver-bidi/ to the 3 September 2026 Working Draft, with 1 September listed as the previous version. 2026-08-18 can remain only as an explicitly justified compatibility pin with a recorded delta; it is no longer truthful as “latest published”. The 3 Sep draft still defines emulation.ScreenArea as { width, height } only and emulation.setLocaleOverride with one locale. Canonical #229’s PresentationSurface::Screen includes color depth and Languages means ordered language preferences, so the current capability map must not certify those whole canonical surfaces from standard BiDi alone without finer-grained adapter semantics plus pinned-browser page-observed evidence.

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 seonghobae changed the title test(browser): specify versioned WebDriver BiDi presentation boundary feat(browser): add versioned WebDriver BiDi presentation boundary Sep 7, 2026

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Writer lease ACTIVE — fresh bounded lane for #293 standards/provenance repair at exact head 9f11b0c8268890b0620c94b6975d461f67511afa. Scope is limited to correcting the false 2026-09-03 test assertion against the W3C latest-published WebDriver BiDi Working Draft, recording the immutable upstream source commit used for same-day capability doctoring, and keeping the existing Screen/Languages semantic assertions test-first. No production capability admission repair, PR Ready transition, workflow/ruleset mutation, merge, tag, or release is in this lease.

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — exact head f0a3b66a4ff3034d8a4e23e9b75ca2679fd0d3de. The bounded standards/provenance repair is published and the PR body plus #292 owner comment are current for this checkpoint. Draft CI 34166151155 skipped both native jobs without execution, so the remaining Screen/Languages capability assertion is still test-first rather than an observed RED. The next source writer must re-read exact head/base/reviews/CI and acquire a fresh lease before any production capability-map change.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@seonghobae seonghobae added the enhancement New feature or request label Sep 8, 2026 — with ChatGPT Codex Connector

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread crates/originweave-bidi/src/presentation_capabilities.rs Outdated
Comment thread ARCHITECTURE.md
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head Rust contracts failure RCA is repaired in stacked #297. The root cause was the single non-canonical ResetTimezone assertion formatting; #297 is based on #293 head 476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1, includes the minimal canonical formatting repair, and has local fmt, full Python (161 passed / 546 subtests), Clippy, and rustdoc evidence. No rewrite of #293 was performed.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@seonghobae
seonghobae marked this pull request as draft September 9, 2026 04:34

Copy link
Copy Markdown
Contributor Author

PR-state repair: exact head 476a8e09aa1aa7ab2e87cf7452a8ecfca47bf9c1 was found Ready even though the PR body explicitly requires Draft and the latest executed native CI on that same head, run 34303871057, is terminal failure. Rust contracts job 102316370858 passed Python repository contracts and then failed at canonical Rust formatting; workspace tests, strict Clippy and rustdoc were skipped. Production coverage job 102316371078 succeeded, but that does not override the failed repository gate. The PR has therefore been converted back to Draft without changing head/base/source. Stacked #297 (e027c1fb882088da0b07a33d50dd536458b4b76c) remains the non-destructive successor carrying the formatting repair; it is not a reason to promote #293 itself. #292 still owns application-completeness and real pinned-Chromium apply → page-observed post-condition → cleanup acceptance. No source/docs lease is claimed or overridden by this state repair.

Copy link
Copy Markdown
Contributor Author

Successor #298 advanced from 82f2e20... to exact 369add64ea285497e9fa3f706ba85ba205adff80 with an additional authority-boundary repair: test-first 3bd7b2a... plus minimal 369add64... remove the publicly constructible SetReducedMotion command from the reusable BiDi planning boundary while keeping ReducedMotion in the protocol-capability map. #293 should not recreate or hand-merge this delta; adopt #298 through ordinary stack integration after exact-head executable evidence. Existing parent review threads remain unresolved until that adoption and parent-head revalidation. #298 is still Draft and exact CI 34315065049 is skipped.

…tract-repair-20260909

test(bidi): align media authority contract
…on-completeness-20260909

fix(bidi): make reusable application scope explicit
@seonghobae
seonghobae marked this pull request as ready for review September 9, 2026 09:29
@seonghobae
seonghobae merged commit a517eb4 into feat/privacy-presentation-identity Sep 9, 2026
6 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +127 to +131
WebDriverBidiPresentationCommand::ResetViewport {
context: context.clone(),
},
WebDriverBidiPresentationCommand::ResetTimezone {
context: context.clone(),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant