feat(network): unsubscribe committed navigation events - #263
Draft
seonghobae wants to merge 9 commits into
Draft
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
This was referenced Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #28, stacked directly on live PR #262 branch
feat/webdriver-bidi-navigation-subscribeexact head9df2fc23abf42133beaebab4f5466fbdc942d336.Buyer-visible boundary
This Draft adds an explicit typed WebDriver BiDi
session.unsubscribepath for the exact opaque subscription receipt produced by the typedbrowsingContext.navigationCommittedsubscription boundary. It does not expose arbitrary event names, generic method dispatch, generic result JSON, or an ambient caller-supplied subscription identifier.The command consumes only a previously validated typed subscription receipt, registers command correlation before the first possible remote side effect, serializes standards-valid opaque subscription text as valid JSON, writes one bounded masked WebSocket text frame, correlates the exact response, and retains no generic remote result body or new authority. Malformed envelopes and unknown response IDs fail closed without consuming unrelated outstanding correlation; a matched remote protocol error consumes only its exact command and remains a typed failure.
Primary specification: WebDriver BiDi Editor's Draft
session.unsubscribe, usingsession.UnsubscribeByIDRequestandsession.UnsubscribeResult.Test-first and repair lineage
Exact test-only head
b20d35180eef45d70e2370abc7b74cd5aef06d81added a real loopback TCP → RFC 6455 opening exchange → typedsession.subscribe→ parsed opaque subscription receipt containing quote/backslash/newline/control/Unicode text → intended maskedsession.unsubscribe→ local-end success response → exact correlation regression before the production unsubscribe types existed.After production implementation, exact head
88abc1b7af330d617196cbce120d83771d78713bexposed a real exact-coverage defect in CI run33372945112: the regular-library instantiations for privacy-safeDebug, command-ID range rejection, duplicate-correlation rejection, frame-write failure mapping, malformed envelope handling, unknown-response correlation failure, and matched remote protocol error were not exercised even though lib-test copies were. The exact coverage artifact identified those concrete production obligations; no exclusion or threshold change was used.The canonical branch was repaired with realistic public integration regressions at
af5acf29fec987d098e9185b4a0e98277f83a678; later stack convergence propagated ancestor authority repairs without transferring predecessor evidence.Exact-current evidence
Current exact head is
24fc763f0c4ae4e0dd2c62b9dca4b5bc0d23a94bagainst live exact base9df2fc23abf42133beaebab4f5466fbdc942d336. Fresh ancestry has the base as the exact merge base, with this branch ahead by its nine unsubscribe commits and not behind. GitHub reports the PR open, Draft, and mergeable.Exact native CI run
33441035257completed success on this unchanged head:99649019698: exact checkout, repository contracts, canonical formatting, workspace check, full tests, strict Clippy, and rustdoc success;99649019360: exact owned-production function/line/region/branch measurement, diagnostics upload, and exact enforcement success.Fresh formal reviews and inline review threads are empty; no independent approval is claimed or inferred. No Manifest V3 or central required-workflow success is inferred where the exact-head inventory does not return it. Organization-required workflow absence remains absent evidence and is tracked at the governance owner boundary by issue #215.
Predecessor checks, earlier coverage artifacts, failed or skipped/cancelled runs, comments, author activity, statuses, and model output are not transferred as passing evidence.
Stack / authority boundary
Keep Draft while #262 and its ancestors remain Draft. Protected-main
AGENTS.mdand live GitHub governance remain authoritative. This scheduled branch does not merge, self-approve, use admin bypass, force-push, destructively rebase, alter workflows/rulesets/secrets, weaken checks, tag, release, or publish.