Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6dea3f8189126887699003d8aafa706c8d1e0c4e
      
https://github.com/WebKit/WebKit/commit/6dea3f8189126887699003d8aafa706c8d1e0c4e
  Author: Matt Woodrow <[email protected]>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h
    M 
Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    M Source/WebKit/UIProcess/wc/DrawingAreaProxyWC.cpp
    M 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
    M 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h
    M Source/WebKit/WebProcess/WebPage/DrawingArea.h
    M Source/WebKit/WebProcess/WebPage/DrawingArea.messages.in
    M 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
    M 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
    M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp
    M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h

  Log Message:
  -----------
  Make it possible to track multiple pending frames in 
RemoteLayerTreeDrawingAreaProxy.
https://bugs.webkit.org/show_bug.cgi?id=301898
<rdar://problem/163978742>

Reviewed by Gerald Squelart.

Converts commitLayerTreeMessageState to be a Variant so that data that is 
specific to one state are restricted to that (like 
receivedCommitLayerTreePendingConfirmation).

Converts the receivedCommitLayerTreePendingConfirmation bool to two integers, 
counting the number of pending NotifyPendingCommitLayerTree and CommitLayerTree 
calls.

Folds the MissedCommit state into a subset flag of the CommitLayerTreePending 
state.

When receiving a notifyPendingCommitLayerTree message while Idle, move into the 
CommitLayerTreePending state. This simplifies the logic in 
waitForDidUpdateActivityState.

Round-trip the transaction startTime via the WebProcess, rather than storing it 
on the UI-process side.

There should be no behavior changes at this point.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeCommitBundle.h:
* 
Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::update):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
(WebKit::RemoteLayerTreeDrawingAreaProxy::nextMainFrameLayerTreeTransactionID 
const): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::lastCommittedMainFrameLayerTreeTransactionID
 const): Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::nextMainFrameLayerTreeTransactionID 
const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::lastCommittedMainFrameLayerTreeTransactionID
 const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::notifyPendingCommitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTreeTransaction):
(WebKit::RemoteLayerTreeDrawingAreaProxy::maybePauseDisplayRefreshCallbacks):
(WebKit::operator<<):
(WebKit::RemoteLayerTreeDrawingAreaProxy::ProcessState::canSendDisplayDidRefresh):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
* Source/WebKit/UIProcess/wc/DrawingAreaProxyWC.cpp:
(WebKit::DrawingAreaProxyWC::update):
* 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::displayDidRefresh):
* 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
* Source/WebKit/WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::displayDidRefresh):
* Source/WebKit/WebProcess/WebPage/DrawingArea.messages.in:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::hasPendingFlush 
const):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::markHasPendingFlush):
* 
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::startRenderingUpdateTimer):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::displayDidRefresh):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
* Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::displayDidRefresh):
* Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.h:

Canonical link: https://commits.webkit.org/302734@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to