[webkit-changes] [WebKit/WebKit] 9f0c7a: Generalize willStartPlatformRenderingUpdate/didCom...

Simon Fraser noreply at github.com
Thu Dec 22 09:56:57 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9f0c7ac64f9afed660b778006cd576ca9715e259
      https://github.com/WebKit/WebKit/commit/9f0c7ac64f9afed660b778006cd576ca9715e259
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2022-12-22 (Thu, 22 Dec 2022)

  Changed paths:
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebKit/WebProcess/WebPage/DrawingArea.cpp
    M Source/WebKit/WebProcess/WebPage/DrawingArea.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
    M Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
    M Source/WebKitLegacy/mac/WebView/WebView.mm
    M Source/WebKitLegacy/mac/WebView/WebViewData.h

  Log Message:
  -----------
  Generalize willStartPlatformRenderingUpdate/didCompleteRenderingUpdateDisplay() and call for all configurations
https://bugs.webkit.org/show_bug.cgi?id=249750
rdar://103614410

Reviewed by Tim Horton.

Add functions to WebPage and Page that get called before and after the "commit layer tree and paint" part
of a rendering update. In TiledCoreAnimationDrawingArea and WebKitLegacy which use Core Animation rendering,
this time period equates to the start and end of the CA commit. In RemoteLayerTreeDrawingArea, it starts
when we build the layer tree transaction, and ends when the buffer flushing is complete.

Web inspector uses these hooks to build its "commit" timeline events. Previously, these events were
broken on iOS because RemoteLayerTreeDrawingArea erroneously used CA commit handlers in an environment
where there is no real CA commit (webkit.org/b/249736). And in WebKitLegacy, we'll now also correctly
generate these events. Now there is only one call site for inspector composite hooks.

* Source/WebCore/page/Page.cpp:
(WebCore::Page::willStartRenderingUpdateDisplay):
(WebCore::Page::didCompleteRenderingUpdateDisplay):
(WebCore::Page::willStartPlatformRenderingUpdate): Deleted.
(WebCore::Page::didCompletePlatformRenderingUpdate): Deleted.
* Source/WebCore/page/Page.h:
* Source/WebKit/WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::willStartRenderingUpdateDisplay):
(WebKit::DrawingArea::didCompleteRenderingUpdateDisplay):
* Source/WebKit/WebProcess/WebPage/DrawingArea.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::didCompleteRenderingUpdateDisplay):
(WebKit::RemoteLayerTreeDrawingArea::addCommitHandlers): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willStartRenderingUpdateDisplay):
(WebKit::WebPage::didCompleteRenderingUpdateDisplay):
(WebKit::WebPage::willStartPlatformRenderingUpdate): Deleted.
(WebKit::WebPage::didCompletePlatformRenderingUpdate): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::firstFlushAfterCommit const): Deleted.
(WebKit::WebPage::setFirstFlushAfterCommit): Deleted.
* Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::sendPendingNewlyReachedPaintingMilestones):
(WebKit::TiledCoreAnimationDrawingArea::didCompleteRenderingUpdateDisplay):
(WebKit::TiledCoreAnimationDrawingArea::addCommitHandlers):
* Source/WebKitLegacy/mac/WebView/WebView.mm:
(-[WebView _willStartRenderingUpdateDisplay]):
(-[WebView _didCompleteRenderingUpdateDisplay]):
(LayerFlushController::flushLayers):
* Source/WebKitLegacy/mac/WebView/WebViewData.h:
(LayerFlushController::didCompleteRenderingUpdateDisplay):

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




More information about the webkit-changes mailing list