[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