Repository navigation
Conversation
…ver design page Reviewed by NOBODY (OOPS!). The Site Isolation explainer had drifted from the tree: it still described Console as the only per-frame agent, a per-process NetworkAgentProxy, a single shared Debugger as an open risk, and a Page agent FIXME that has since been resolved. WebDriver had no Site Isolation documentation at all, even though classic and BiDi commands hit the same routing problems as Inspector. Rewrite the explainer around three agent homes (per-frame target, process-level aggregation in the UI process, UI-process-only store) and document every domain against that model, with Done / In progress / Planned status tables kept separate from the design prose. Timeline, ScriptProfiler, Heap, IndexedDB, and Audit move from octopus to per-frame; only CPUProfiler and Memory stay octopus. Add Deep Dive/WebDriver/SiteIsolation.md covering the client side / api side / server side stack, frame-routed commands, identifiers, each classic endpoint group, and each BiDi module. BiDi paragraphs are design prose; there is no per-command status column yet. Add a short cross-cutting "Automation and Inspection Under Site Isolation" section to SiteIsolation.md so the shared rules live in one place, and point at both deep dives. No new tests, documentation only. `mkdocs build --strict` reports no new warnings. * docs/Deep Dive/SiteIsolation.md: * docs/Deep Dive/Web Inspector/SiteIsolationExplainer.md: * docs/Deep Dive/WebDriver/SiteIsolation.md: Added.
…-IPC rule, mark unlanded BiDi/classic behavior Reviewed by NOBODY (OOPS!). The interception hooks from bug 324478 have landed: FrameNetworkAgentProxy implements them and declines every load, and ProxyingNetworkAgent's resolution commands now report missing-intercept errors while the configuration commands accept and discard their arguments. Describe that instead of "is to gain hooks" and "all verbs are no-ops". IsKnownNodeReference is still a synchronous WebContent-to-UI message, so state the asynchronous-IPC rule as a design rule with one remaining synchronous query being removed, in both the cross-cutting rules and the WebDriver page. Add a short note at the top of the BiDi sections that they describe the target architecture, and mark the classic items that are written but not yet in the tree (window and frame reference markers, file-upload process capture, page-source frame handle, cookie-averse delete) as in progress. * docs/Deep Dive/SiteIsolation.md: * docs/Deep Dive/Web Inspector/SiteIsolationExplainer.md: * docs/Deep Dive/WebDriver/SiteIsolation.md:
burg
marked this pull request as ready for review
October 11, 2026 21:16
…refcount contract precise Reviewed by NOBODY (OOPS!). The explainer said the enableInstrumentationForProcess seam is reached from didCreateFrame, didCreateProvisionalFrame, didCommitProvisionalFrame and didCommitProvisionalPage. That is only true of the two agents together. ProxyingPageAgent registers the destination process at didCreateProvisionalFrame and only releases the old process at commit, while ProxyingNetworkAgent does nothing for a provisional frame and registers the new process at commit. Replace the list with a per-agent table of every hook that registers or releases. The security section said enable registers a receiver "for each process hosting a frame". Describe the actual contract instead: a count per (WebContent process, page ID), one per hosted frame (including a provisional frame, plus processes with no frame), with Enable*Instrumentation sent only on 0 to 1 and Disable*Instrumentation only on 1 to 0. Note that enable() still counts once per process on main, that bug 327026 (under review) moves ProxyingPageAgent::enable() to per-frame counting, and that ProxyingNetworkAgent::enable() needs the same change. Also say that disable() tears down every registration regardless of count. No other statements in the proxying-agent and instrumentation sections disagree with current main. `mkdocs build --strict` reports no new warnings. * docs/Deep Dive/Web Inspector/SiteIsolationExplainer.md:
burg
requested review from
AnujPanta1,
achristensen07,
adetaylor,
annevk,
aproskuryakov,
aprotyas,
basuke,
brentfulgham,
dcrousso,
geoffreygaren,
rniwa,
szewai,
the-chenergy and
zakariaridouh
October 12, 2026 06:18
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.
Refreshes the Site Isolation docs for where the work stands today.
ProxyingNetworkAgentandProxyingPageAgentregister and release instrumentation (per-hook table), and the refcount contract: one count per hosted frame per (WebContent process, page), with Enable sent only on 0→1 and Disable only on 1→0.Behavior that has not landed yet is marked as in progress. The page agent's per-frame counting in
enable()is under review in WebKit/WebKit#76520 (bug 327026);ProxyingNetworkAgent::enable()still counts per process and needs the same change. The WebDriver page is design prose, with no per-command status column yet.Draft for review.