Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3a7682ec22d5425edc3464a5be2d48df538ef312 https://github.com/WebKit/WebKit/commit/3a7682ec22d5425edc3464a5be2d48df538ef312 Author: Alex Christensen <achristen...@apple.com> Date: 2023-07-24 (Mon, 24 Jul 2023)
Changed paths: M Source/WebCore/page/Page.cpp M Source/WebCore/page/PageConfiguration.cpp M Source/WebCore/page/PageConfiguration.h M Source/WebCore/page/RemoteDOMWindow.cpp M Source/WebCore/page/RemoteFrame.cpp M Source/WebCore/page/RemoteFrame.h M Source/WebCore/page/RemoteFrameClient.h M Source/WebKit/Shared/FrameTreeCreationParameters.h M Source/WebKit/Shared/FrameTreeCreationParameters.serialization.in M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/WebFrameProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/WebProcessProxy.messages.in M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h M Source/WebKit/WebProcess/WebPage/WebFrame.cpp M Source/WebKit/WebProcess/WebPage/WebFrame.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in M Source/WebKit/WebProcess/WebProcess.messages.in M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm Log Message: ----------- Implement postMessage for site-isolated iframes after cross-origin navigation https://bugs.webkit.org/show_bug.cgi?id=259423 rdar://112719991 Reviewed by Tim Nguyen. Broadcasting process identifier updates when an iframe changes processes would necessarily introduce a point of time where messages could be dropped because updates hadn't been received in the sending web content processes. Rather than trying to keep that information up to date in all web content processes, use the UI process as the source of truth for what frame is in what process. The FrameIdentifier is therefore all the context we need when sending messages to another process. * Source/WebCore/page/Page.cpp: (WebCore::createMainFrame): * Source/WebCore/page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration): * Source/WebCore/page/PageConfiguration.h: * Source/WebCore/page/RemoteDOMWindow.cpp: (WebCore::RemoteDOMWindow::postMessage): * Source/WebCore/page/RemoteFrame.cpp: (WebCore::RemoteFrame::createMainFrame): (WebCore::RemoteFrame::createSubframe): (WebCore::RemoteFrame::createSubframeWithContentsInAnotherProcess): (WebCore::RemoteFrame::RemoteFrame): (WebCore::m_layerHostingContextIdentifier): (WebCore::RemoteFrame::renderTreeAsText): (WebCore::m_remoteProcessIdentifier): Deleted. * Source/WebCore/page/RemoteFrame.h: * Source/WebCore/page/RemoteFrameClient.h: * Source/WebKit/Shared/FrameTreeCreationParameters.h: * Source/WebKit/Shared/FrameTreeCreationParameters.serialization.in: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didCommitLoadForFrame): * Source/WebKit/UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::commitProvisionalFrame): (WebKit::WebFrameProxy::frameTreeCreationParameters const): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::createRemoteSubframesInOtherProcesses): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::postMessageToRemote): (WebKit::WebProcessProxy::renderTreeAsText): * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/WebProcessProxy.messages.in: * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp: (WebKit::WebRemoteFrameClient::postMessageToRemote): (WebKit::WebRemoteFrameClient::renderTreeAsText): * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h: * Source/WebKit/WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createRemoteSubframe): (WebKit::WebFrame::didCommitLoadInAnotherProcess): * Source/WebKit/WebProcess/WebPage/WebFrame.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::clientForMainFrame): (WebKit::m_appHighlightsVisible): (WebKit::WebPage::constructFrameTree): (WebKit::WebPage::createRemoteSubframe): (WebKit::WebPage::didCommitLoadInAnotherProcess): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: * Source/WebKit/WebProcess/WebProcess.messages.in: * Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/266266@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes