Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 377a279a5f9addf4042163a8abaf1cca0396bdae
https://github.com/WebKit/WebKit/commit/377a279a5f9addf4042163a8abaf1cca0396bdae
Author: Alex Christensen <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes