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

Reply via email to