v11.2.3
Highlights
🐛 A navigation that swaps process no longer leaves DevTools with a black screen
A navigation that commits in a new process destroys the target the CDP bridge is talking to, and WebKit never answers what was in flight to it. That is exactly the moment Chrome's frontend asks for the resource tree and starts a screencast, so both were left without an answer: Page.getResourceTree raised a KeyError on the missing result and Page.startScreencast a TypeError out of its screen-size probe, and the frontend was handed a request it cannot act on. The screencast was the damaging one — unlike the resource tree the frontend never asks again, so the screen stayed black for the rest of the session — and the bridge additionally kept a screencast that never started, so closing the session then failed on it and left the target's queue-consumer tasks draining the events of every later session on that page.
Both requests are now re-asked of the target that took over. The events that commit the swap are applied by the receive loop, which is paused for the whole of every request wait, so the retry yields to let them through. wait_for_event_id also records the destroyed target as it abandons the wait, so a target that was merely swapped out is no longer misreported as "stopped responding" and backed off.
pymobiledevice3 webinspector cdp
# then open http://127.0.0.1:9222/, pick a page, and navigate it across a process swap🐛 A JSContext target answers Page requests the way a Node target does
A JSContext debuggable implements no Page domain, and its global object carries no window — so neither the resource tree nor the screencast's size probe can ever succeed there. Both are now refused with a protocol error, which Chrome's frontends absorb exactly as they do from a real Node target, instead of raising out of the translation and leaving the frontend with no answer at all.
What's Changed
- 0df6d4a webinspector: answer CDP page requests a target cannot serve (#1892) (@doronz88)
- 270dc40 tests: bring up a no-root tunnel instead of waiting for tunneld (#1890) (@doronz88)
- 0cfcabf tests: navigate self-contained pages in the WebDriver history tests (#1890) (@doronz88)
- 6d23d9d release: keep merge commits out of the release notes (#1890) (@doronz88)
Full Changelog: v11.2.2...v11.2.3