Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5001daca24e7c29db01073cc27011c9928abc781
https://github.com/WebKit/WebKit/commit/5001daca24e7c29db01073cc27011c9928abc781
Author: Ruthvik Konda <[email protected]>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M Source/WebCore/platform/ProcessQualified.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h
A Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.mm
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h
M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
M
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.h
M
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/WKContentView.h
M Source/WebKit/UIProcess/ios/WKContentView.mm
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/mac/RemoteLayerTreeDrawingAreaMac.h
M Source/WebKit/WebProcess/WebPage/mac/RemoteLayerTreeDrawingAreaMac.mm
Log Message:
-----------
Organize remaining RemoteLayerTreeTransaction members
https://bugs.webkit.org/show_bug.cgi?id=302267
rdar://164407141
Reviewed by Matt Woodrow.
Right now RemoteLayerTreeDrawingAreaProxy::commitLayerTree currently receives a
Vector<std::pair<RemoteLayerTreeTransaction,
RemoteScrollingCoordinatorTransaction>>, one pair per root frame. However, some
aspects of the transaction are
scoped to the root frame. Some are scoped to the page. And some are scoped to
the main frame. We want to accordingly
introduce some separation/organization here to reduce duplication and remove
unnecessary isMainFrameProcessTransaction() checks.
This PR builds on https://github.com/WebKit/WebKit/pull/52671 and
https://github.com/WebKit/WebKit/pull/52839. In this PR, we move
the last relevant members from transaction scope to main frame, page, and
bundle scope accordingly. WCP propagation
is adjusted to fit this. And where appropriate, processing on the UIProcess
side is separated to ensure that mainframe specific
data is only processed once rather than per transaction.
We should only be using bundle.mainFrameData now as the sole source of truth
for checking for main frame identity, so isMainFrameProcessTransaction()
is removed. Furthermore, since these members got migrated, some logging was
removed from RemoteLayerTreeTransaction. We add it back
in RemoteLayerTreeCommitBundle.mm.
No new functionality is added. This is a simple refactoring. Existing test
coverage is enough.
As a result, no new tests are added.
* Source/WebCore/platform/ProcessQualified.h:
(WebCore::ProcessQualified::lessThanSameProcess const):
(WebCore::ProcessQualified::lessThanOrEqualSameProcess const):
(WebCore::ProcessQualified::greaterThanSameProcess const):
(WebCore::ProcessQualified::greaterThanOrEqualSameProcess const):
(WebCore::ProcessQualified::lessThanSameProcess): Deleted.
(WebCore::ProcessQualified::lessThanOrEqualSameProcess): Deleted.
(WebCore::ProcessQualified::greaterThanSameProcess): Deleted.
(WebCore::ProcessQualified::greaterThanOrEqualSameProcess): Deleted.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.mm: Added.
(WebKit::PageData::description const):
(WebKit::MainFrameData::description const):
(WebKit::RemoteLayerTreeCommitBundle::description const):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description const):
(WebKit::RemoteLayerTreeTransaction::RemoteLayerTreeTransaction): Deleted.
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:mainFrameData:]):
(-[WKWebView _trackTransactionCommit:]):
(-[WKWebView _updateScrollViewForTransaction:]):
(-[WKWebView _restoreScrollAndZoomStateForTransaction:]):
(-[WKWebView _didCommitLayerTree:mainFrameData:pageData:transactionID:]):
(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]): Deleted.
(-[WKWebView _didCommitLayerTree:mainFrameData:]): Deleted.
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::didCommitLayerTree):
(WebKit::PageClientImplCocoa::didCommitMainFrameData):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::didCommitMainFrameData):
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
(WebKit::RemoteLayerTreeDrawingAreaProxy::didCommitLayerTree):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTreeTransaction):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.h:
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxyMac::didCommitLayerTree):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::didCommitMainFrameData):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didCommitLayerTree):
(WebKit::PageClientImpl::didCommitMainFrameData):
* Source/WebKit/UIProcess/ios/WKContentView.h:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:mainFrameData:pageData:transactionID:]):
(-[WKContentView _didCommitLayerTree:mainFrameData:]): Deleted.
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateLayoutViewportParameters):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::willCommitMainFrameData):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::willCommitMainFrameData):
(WebKit::RemoteLayerTreeDrawingArea::willCommitLayerTree): Deleted.
*
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/mac/RemoteLayerTreeDrawingAreaMac.h:
* Source/WebKit/WebProcess/WebPage/mac/RemoteLayerTreeDrawingAreaMac.mm:
(WebKit::RemoteLayerTreeDrawingAreaMac::willCommitMainFrameData):
(WebKit::RemoteLayerTreeDrawingAreaMac::willCommitLayerTree): Deleted.
Canonical link: https://commits.webkit.org/303348@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications