Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ca25989d0d7802ddc9a3b8d83a1776ddfcbbcfe2
      
https://github.com/WebKit/WebKit/commit/ca25989d0d7802ddc9a3b8d83a1776ddfcbbcfe2
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
    M 
Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h
    M Source/WebKit/UIProcess/DrawingAreaProxy.cpp
    M Source/WebKit/UIProcess/DrawingAreaProxy.h
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    M 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeDrawingAreaProxyIOS.mm
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm
    M Source/WebKit/UIProcess/SubframePageProxy.cpp
    M Source/WebKit/UIProcess/SubframePageProxy.h
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.h
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/mac/PageClientImplMac.h
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h
    M Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm
    M Source/WebKit/UIProcess/mac/WebViewImpl.h
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm
    M Source/WebKit/UIProcess/playstation/PageClientImpl.cpp
    M Source/WebKit/UIProcess/playstation/PageClientImpl.h
    M Source/WebKit/UIProcess/wc/DrawingAreaProxyWC.cpp
    M Source/WebKit/UIProcess/wc/DrawingAreaProxyWC.h
    M Source/WebKit/UIProcess/win/PageClientImpl.cpp
    M Source/WebKit/UIProcess/win/PageClientImpl.h

  Log Message:
  -----------
  Remove site isolation processes from DrawingAreaProxy when they are no longer 
used
https://bugs.webkit.org/show_bug.cgi?id=257510
rdar://110027492

Reviewed by Tim Horton.

This is cleanup necessary for and working towards having more than 1 layout 
test with site isolation enabled.

I made symmetric add/remove, start/stop, attach/detach calls and tied them to 
object lifetimes instead of
having them be called at other times that are hard to get right.

Instead of having the DrawingAreaProxy keep track of which processes with which 
it has registered as a
message receiver, move the registration/unregistration responsibility to 
WebPageProxy, which already
keeps track of the site isolation processes.  In the non-site-isolated case, 
there is only ever 1 web
content process drawing at a time for a given WebPageProxy.

Because there is RemoteLayerTreeDrawingAreaProxy which has its own message 
receiver, I kept the
startReceivingMessages/stopReceivingMessages pattern to keep the platform 
specific code in the inheritance chain.

* Source/WebKit/UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::startReceivingMessages):
(WebKit::DrawingAreaProxy::stopReceivingMessages):
* Source/WebKit/UIProcess/DrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::attachToRemoteFrameProcess):
(WebKit::RemoteLayerTreeDrawingAreaProxy::detachFromRemoteFrameProcess):
(WebKit::RemoteLayerTreeDrawingAreaProxy::startReceivingRemoteLayerTreeDrawingAreaProxyMessages):
(WebKit::RemoteLayerTreeDrawingAreaProxy::stopReceivingRemoteLayerTreeDrawingAreaProxyMessages):
(WebKit::RemoteLayerTreeDrawingAreaProxy::attachToProvisionalFrameProcess): 
Deleted.
* Source/WebKit/UIProcess/SubframePageProxy.cpp:
(WebKit::SubframePageProxy::SubframePageProxy):
(WebKit::SubframePageProxy::~SubframePageProxy):
* Source/WebKit/UIProcess/SubframePageProxy.h:
(WebKit::SubframePageProxy::create):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::commitProvisionalFrame):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createRemoteSubframesInOtherProcesses):
Add a null check and an assertion.  If it is hit, then our bookkeeping of the 
processes has an issue.
This makes it more obvious what is going on when debugging.
(WebKit::WebPageProxy::addSubframePageProxy):
(WebKit::WebPageProxy::removeSubpageFrameProxy):
(WebKit::WebPageProxy::removeSubpageFrameProxyIfUnused): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigation):
* Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to