Give BiDi commands independent admission, Native and navigation waits instead
of retaining the socket turn or a single Runtime slot. Share input state by
top-level host, retain its performActions queue, and allow release/control work
during pauses without applying future input state early.
Keep CDP navigation queues local to their sessions, project independent output
while another page is modal, and recover Worker network ownership from its
original session. Preserve exact host bindings, renderer/load predecessors,
original Runtime results and actual realm-retirement ordering.
Validate with cargo fmt --all, workspace Clippy (all targets/features, warnings
denied), and cargo nextest run --no-fail-fast: 23,068 passed, 20 existing skips.
A newly committed native Document can execute before its commit output has
been projected into protocol state. Routing Fetch.enable through the
projected binding then updates a loaded predecessor or no Page at all,
allowing requests to bypass interception after a successful ACK.
Address restricted request-policy updates to the synchronously admitted
renderer Page and wait for native completion. Reuse this route for Fetch
cleanup and blocked URLs without granting general unbound Document access.
Hold actual native commit publications in the regression and inspect the
exact evaluation output fence. Cover new/replaced Pages with interception
enable/disable and blocked URLs, with no external I/O in negative controls.
The original controlled reproducer fails 3/3 on the rebase baseline.
Validation: fmt; workspace/all-targets/all-features Clippy; 23,026 Nextest
passed, 20 skipped; three targeted tests x20 and 30 module tests x5, all
without retries.
Use the persisted StoreId and IndexId in SQL commands, transaction scopes and renderer handles. Reserve IDs without waiting for the SQL owner and recover their counters with committed disk metadata.
Remove name-based request targets, separate renderer identity tokens and cursor name refresh. Cover concurrent reservations, abort, idle reconnect, catalog recovery, restart, stale IDs and old-name reuse.
Keep the socket actor responsive while a context-targeted Runtime command waits for its Document. Retain the original host and session binding until admission can validate and dispatch in one finite owner turn. Cover close, replacement, navigation completion, session end and disconnect in standalone and Classic-attached BiDi, including exact-once responses and revoked identities.
Keep method-independent site limits and redirect diagnostic history apart
from the current HTTP method. Compute SameSite outcomes and both diagnostic
tracks when read, with one canonical method input. Method overrides no
longer reverse-repair cached SameSite results or duplicated metadata.
Preserve explicit CrossSite restrictions, scope rebinding, partition keys,
and historical downgrade diagnostics. Keep cache key material unchanged
while moving consumers to the computed context API.
Cover method round trips without history mutation and retain distinct
diagnostics when different histories end with the same CrossSite result.
Apply negotiated per-type policies through Page-owned one-shot dialog completion, including Classic-attached BiDi sessions. Publish required auxiliary Page predecessors only at a modal wait, keep normal popup completion ordering, and resolve dialogs against their captured Page owner.
Native noopener and noreferrer popups share localStorage with related Pages,
but event delivery only searched the mutating Page's Window contexts. Queue
the same owner-bound StorageEvent tasks for matching recipients in related
Pages, while keeping sessionStorage isolated and excluding the source Window.
Extend both window.open and hyperlink popup regressions to await a trusted
localStorage event without changing single ownership of popup scripts.
Regressed-by: 394e305ace
Route explicit request failures through common navigation error preparation and commit the existing browser-owned error Document. Preserve the committed Document only for cancellation, project canonical network error codes, and remove the unverified page-close timeout. Cover request/response interception, redirects, popups, subsequent navigation and genuine CDP clients against Chromium.
Fetch.failRequest with any error reason, such as BlockedByClient, on a paused
main-document navigation invalidated the committed document and published the
retained navigate error and Network.loadingFailed only after the retired page's
close, so a stalled teardown left the tab without a load error and unresponsive.
Chromium cancels such navigations and keeps the current document.
Preserve the committed document for every DevToolsRequestFailure, not just
Aborted. Both classification probes are load-bearing: the chain probe sees the
head error plus #[source] causes, while anyhow stores .context values beside
the chain, so typed contexts only match the direct anyhow-level downcast. Auth
cancellation stays on Invalidate pending verified Chromium parity. Bound the
retired page's close in PreparedNavigationFailureCleanup so the failure
terminal is never withheld by page teardown; renderer-call replays stay
unbounded because abandoning an admitted replay would orphan its response
lease. The navigate command keeps answering with the protocol error carrying
the Chromium error text, matching Network.setBlockedURLs behavior.
Cover request-stage and response-stage failures from a committed document,
redirect-chain failures, and the error classification itself. The
navigation-outcomes CDP smoke group gains a live contract that fails a paused
main document with BlockedByClient and observes the engine-specific navigate
refusal shape (Moli protocol error, Chromium errorText result), one
Network.loadingFailed terminal, no load event, the retained responsive
Document, and a fully working next navigation.
Review fixes: chromium-form navigate expectation in smoke, next-navigation
coverage, bounded renderer wait comment, policy probe and auth comments.
Require explicit task kinds and reject input from read-only tasks. Collect each input outcome in the host and settle retained effects independently of the task result. Report ordinary pending navigations and cover multiple effects, task errors, and screenshots.
Add opt-in ace-protocol support with AcePageTask and PageExtensionHost
for renderer-owner-thread inspection, native input, and screenshots.
Expose BrowserRuntimeHandle through a runtime-ready callback so embedders
can discover targets and submit tasks without CDP request/response envelopes.
Reuse supervised page workflows for output ordering, input effects, and
target/document lifetime checks. Recover lost waiters without replaying
admitted tasks, and revoke runtime access on browser shutdown.
Restored execution-context creation and destruction duplicate projection of the same payload. Use one conversion while retaining typed realm/frame ids, moved strings, access flags and event-kind selection at the callers.