Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f0847a50740a2e312af43140a1c7bce1d0b941ff
      
https://github.com/WebKit/WebKit/commit/f0847a50740a2e312af43140a1c7bce1d0b941ff
  Author: Matt Woodrow <mattwood...@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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to