Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7bc03db6852ac47a05dbd7c7d872fb9a0cf4f596
https://github.com/WebKit/WebKit/commit/7bc03db6852ac47a05dbd7c7d872fb9a0cf4f596
Author: Jessica Lee <[email protected]>
Date: 2026-10-14 (Wed, 14 Oct 2026)
Changed paths:
M Source/WebKit/WebProcess/WebPage/DrawingArea.h
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
Log Message:
-----------
REGRESSION (322072@main): ASSERTION FAILED:
std::holds_alternative<PlatformLayerContainer>(m_data) flakily on
http/tests/site-isolation/inspector/target/target.html
https://bugs.webkit.org/show_bug.cgi?id=327172
rdar://189765175
Reviewed by Simon Fraser.
The iframe process was kept alive so it could finish running unload handlers.
While it lingered, its drawing area still
had a root-layer entry for the removed frame, so it kept sending
CommitLayerTree messages for it. The WebFrame lookup
failed, so these commits had no hosting ID. The UI process treated a hostless
commit as the main frame's tree, wiped the real
scrolling tree and then recreated the main frame's nodes from an incremental
update, leaving them without a CALayer and thus
firing this assertion. The fix removes the frame's entry from m_rootLayers in
removeFromTree() if the frame is not in
Page::rootFrames() since Frame::detachFromPage() already removes the entry of a
frame that is. Then, the commit loop builds no
transaction for it and no invalid/hostless CommitLayerTree message is sent in
the first place. The UI process keeps
the main frame scroll tree's CA layers intact.
No new tests needed.
* Source/WebKit/WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::hasRootFrame const):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
*
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::hasRootFrame const):
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::removeFromTree):
Canonical link: https://commits.webkit.org/323753@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications