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

Reply via email to