Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a327fd79c613902d96e90b7cf8c43e92e6885835
https://github.com/WebKit/WebKit/commit/a327fd79c613902d96e90b7cf8c43e92e6885835
Author: Matt Woodrow <[email protected]>
Date: 2026-01-18 (Sun, 18 Jan 2026)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebKit/Shared/MonotonicObjectIdentifier.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
M
Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
M
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
Log Message:
-----------
Change RemoteLayerTreeDrawingAreaProxy::ProcessState to track a set of
pending commits, rather than a single state machine.
https://bugs.webkit.org/show_bug.cgi?id=303715
<rdar://problem/166025253>
Reviewed by Gerald Squelart.
Trying to track potentially multiple commits with a single state machine is
complicated as the set of potential states is large.
Replace the state variant with a vector of pending commits, so that each
potential state can be tracked per-commit.
Fixes a bug where the existing MESSAGE_CHECKs failed, where we thought the next
step was waiting for display did refresh, but another commit arrives.
This also enables the multiple frame setting by default so that EWS tests run
and expose bugs like the above.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebKit/Shared/MonotonicObjectIdentifier.h:
(WebKit::MonotonicObjectIdentifier::isHashTableEmptyValue const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
(WebKit::ProcessState::ProcessState):
(WTF::HashTraits<WebKit::ProcessState>::emptyValue):
(WTF::HashTraits<WebKit::ProcessState>::isEmptyValue):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::addRemotePageDrawingAreaProxy):
(WebKit::ProcessState::ProcessState):
(WebKit::RemoteLayerTreeDrawingAreaProxy::nextMainFrameLayerTreeTransactionID
const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::processStateForConnection):
(WebKit::RemoteLayerTreeDrawingAreaProxy::processStateForIdentifier const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::notifyPendingCommitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::maybePauseDisplayRefreshCallbacks):
(WebKit::operator<<):
(WebKit::ProcessState::canSendDisplayDidRefresh):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
(WebKit::RemoteLayerTreeDrawingAreaProxy::ProcessState::canSendDisplayDidRefresh):
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxyMac::windowScreenDidChange):
Canonical link: https://commits.webkit.org/305784@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications