[webkit-changes] [WebKit/WebKit] 377a27: Introduce SubframePageProxy and get FrameInfoData ...

Alex Christensen noreply at github.com
Tue Dec 20 11:31:58 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 377a279a5f9addf4042163a8abaf1cca0396bdae
      https://github.com/WebKit/WebKit/commit/377a279a5f9addf4042163a8abaf1cca0396bdae
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2022-12-20 (Tue, 20 Dec 2022)

  Changed paths:
    M Source/WebKit/Sources.txt
    A Source/WebKit/UIProcess/SubframePageProxy.cpp
    A Source/WebKit/UIProcess/SubframePageProxy.h
    M Source/WebKit/UIProcess/SystemPreviewController.h
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
    M Source/WebKit/UIProcess/WebFrameProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.h
    M Source/WebKit/WebProcess/WebPage/WebFrame.messages.in
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  Introduce SubframePageProxy and get FrameInfoData from a WebFrameProxy's current process
https://bugs.webkit.org/show_bug.cgi?id=249522
rdar://103475229

Reviewed by Chris Dumez.

SubframePageProxy is the receiver of messages from a WebPage containing a WebFrame that has
a parent frame in another process.

Rather than get all the FrameInfoData from one process, send messages to whatever processes
a WebFrameProxy is using and aggregate the data in the UI process.  To do this, change the
child frames container from a HashSet to a ListHashSet to match the deterministic ordering
that currently exists in the web process.

* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frames:]):
* Source/WebKit/UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:
* Source/WebKit/UIProcess/SubframePageProxy.cpp: Added.
(WebKit::SubframePageProxy::SubframePageProxy):
(WebKit::SubframePageProxy::~SubframePageProxy):
(WebKit::SubframePageProxy::messageSenderConnection const):
(WebKit::SubframePageProxy::messageSenderDestinationID const):
(WebKit::SubframePageProxy::didReceiveMessage):
(WebKit::SubframePageProxy::didReceiveSyncMessage):
* Source/WebKit/UIProcess/SubframePageProxy.h: Added.
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::~WebFrameProxy):
(WebKit::WebFrameProxy::didFinishLoad):
(WebKit::WebFrameProxy::commitProvisionalFrame):
(WebKit::WebFrameProxy::getFrameInfo):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getAllFrames):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::getFrameInfo):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::frameTreeNodeData): Deleted.
(WebKit::WebPage::getAllFrames): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list