[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