Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ade4c0ac172be58182036d9ffc9d7ba37102036f
https://github.com/WebKit/WebKit/commit/ade4c0ac172be58182036d9ffc9d7ba37102036f
Author: Kiet Ho <[email protected]>
Date: 2025-12-19 (Fri, 19 Dec 2025)
Changed paths:
M Source/WebCore/page/FrameTreeSyncData.in
M Source/WebCore/page/LocalFrameView.h
M Source/WebCore/page/RemoteFrameClient.h
M Source/WebCore/page/RemoteFrameView.cpp
M Source/WebCore/page/RemoteFrameView.h
M Source/WebKit/Shared/ProvisionalFrameCreationParameters.h
M Source/WebKit/Shared/ProvisionalFrameCreationParameters.serialization.in
M Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebFrameProxy.h
M Source/WebKit/UIProcess/WebFrameProxy.messages.in
M Source/WebKit/UIProcess/WebPageProxy.cpp
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/WebFrame.messages.in
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
Log Message:
-----------
[Site Isolation] Synchronize FrameView::frameRect using FrameTreeSyncData
rdar://165786911
https://bugs.webkit.org/show_bug.cgi?id=303496
Reviewed by Alex Christensen.
Previously, when the frameRect of a RemoteFrameView changes, it synchronizes
the new
frameRect to other processes:
* Using a custom mechanism and messages
* Only to the LocalFrameView, not to other RemoteFrameView(s)
* Only the size is synchronized
As Intersection Observer requires the full frameRect (location and size) to
calculate
the intersection rectangle, this patch reworks the synchronization mechanism to
sync the full frameRect to both the LocalFrameView as well as
RemoteFrameView(s).
This patch also removes the custom sync messages, opting to use
FrameTreeSyncData instead.
* Source/WebCore/page/FrameTreeSyncData.in:
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/page/RemoteFrameClient.h:
* Source/WebCore/page/RemoteFrameView.cpp:
(WebCore::RemoteFrameView::setFrameRectWithoutSync):
(WebCore::RemoteFrameView::setFrameRect):
* Source/WebCore/page/RemoteFrameView.h:
* Source/WebKit/Shared/ProvisionalFrameCreationParameters.h:
* Source/WebKit/Shared/ProvisionalFrameCreationParameters.serialization.in:
* Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp:
(WebKit::ProvisionalFrameProxy::ProvisionalFrameProxy):
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::initializeWebPage):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::calculateFrameTreeSyncData const):
(WebKit::WebFrameProxy::updateRemoteFrameSize): Deleted.
* Source/WebKit/UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::layerHostingContextIdentifier const):
(WebKit::WebFrameProxy::remoteFrameRect const):
(WebKit::WebFrameProxy::setRemoteFrameRect):
(WebKit::WebFrameProxy::remoteFrameSize const): Deleted.
* Source/WebKit/UIProcess/WebFrameProxy.messages.in:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::frameTreePropertyIsRestrictedToFrameOwningProcess):
(WebKit::WebPageProxy::broadcastFrameTreeSyncData):
(WebKit::WebPageProxy::broadcastAllFrameTreeSyncData):
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp:
(WebKit::WebRemoteFrameClient::frameRectDidChange):
(WebKit::WebRemoteFrameClient::sizeDidChange): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::loadDidCommitInAnotherProcess):
(WebKit::WebFrame::createProvisionalFrame):
(WebKit::WebFrame::updateFrameRectFromRemote):
(WebKit::WebFrame::updateLocalFrameRect):
(WebKit::WebFrame::updateRemoteFrameSize): Deleted.
(WebKit::WebFrame::updateFrameSize): Deleted.
(WebKit::WebFrame::updateLocalFrameSize): Deleted.
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebFrame.messages.in:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameTreeSyncDataChangedInAnotherProcess):
Canonical link: https://commits.webkit.org/304792@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications