[webkit-changes] [WebKit/WebKit] 93d1a9: Allow window.open to open in a new process when us...

Alex Christensen noreply at github.com
Fri Aug 11 11:45:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 93d1a99132f08e29d098f0180aa1dab2bf286c98
      https://github.com/WebKit/WebKit/commit/93d1a99132f08e29d098f0180aa1dab2bf286c98
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-08-11 (Fri, 11 Aug 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm

  Log Message:
  -----------
  Allow window.open to open in a new process when using TiledCoreAnimationDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=260059
rdar://111064288

Reviewed by J Pascoe.

When using TiledCoreAnimationDrawingArea and after a cross-site window.open, we have a WebPage
that has only RemoteFrames, which would use RemoteLayerTreeDrawingArea in most cases except
pre-Sonoma macOS and 2-core CPUs.  This WebPage only exists to hold RemoteFrames to proxy messages
back and forth, so it doesn't need to draw.  We just want it to not crash.

Add a null check and an early return in updateRendering like we do when layerTreeStateIsFrozen returns true.
Covered by the API test SiteIsolation.BasicPostMessageWindowOpen on pre-Sonoma macOS.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasRootFrames):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):

Canonical link: https://commits.webkit.org/266823@main




More information about the webkit-changes mailing list