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

Reply via email to