[webkit-changes] [WebKit/WebKit] f0847a: RemoteLayerTreeDisplayRefreshMonitor::requestRefre...
mattwoodrow
noreply at github.com
Sat May 20 18:40:18 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f0847a50740a2e312af43140a1c7bce1d0b941ff
https://github.com/WebKit/WebKit/commit/f0847a50740a2e312af43140a1c7bce1d0b941ff
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2023-05-20 (Sat, 20 May 2023)
Changed paths:
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
Log Message:
-----------
RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback doesn't clear scheduled state.
https://bugs.webkit.org/show_bug.cgi?id=257004
<rdar://107848069>
Reviewed by Simon Fraser.
RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback dispatches a task to the main thread and sets scheduled to true.
When that task runs, it triggers the rendering update but doesn't set scheduled back to false.
Normally, the rendering update results in a commit to the UI process, and then we get a RemoteLayerTreeDrawingArea::displayDidRefresh callback, which sets scheduled to false (but also triggers a second rendering update)
This makes it more clear as to whether we're dispatching a task, or waiting for a pending displayDidRefresh in order to schedule a refresh callback, and sets the scheduled state correctly.
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::triggerDisplayDidRefresh):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
(WebKit::RemoteLayerTreeDrawingArea::displayDidRefreshIsPending const):
Canonical link: https://commits.webkit.org/264297@main
More information about the webkit-changes
mailing list