Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fc7a51c3f65d681eb93bba0f17803e91b765f0fe
      
https://github.com/WebKit/WebKit/commit/fc7a51c3f65d681eb93bba0f17803e91b765f0fe
  Author: Fady Farag <[email protected]>
  Date:   2026-10-07 (Wed, 07 Oct 2026)

  Changed paths:
    M Source/WebCore/html/canvas/PaintRenderingContext2D.cpp
    M Source/WebCore/html/canvas/PaintRenderingContext2D.h
    M Source/WebCore/platform/graphics/FontCascade.cpp
    M Source/WebCore/platform/graphics/ImageBufferDisplayListBackend.cpp
    M Source/WebCore/platform/graphics/ImageBufferDisplayListBackend.h
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
    M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
    M Source/WebCore/rendering/RenderHTMLCanvas.cpp
    M Source/WebCore/rendering/RenderHTMLCanvas.h
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/GPUProcess/graphics/RemoteSnapshotRecorder.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteSnapshotRecorder.h
    M Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp
    M 
Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp

  Log Message:
  -----------
  [HTML-in-Canvas] DisplayList recorder should be smart pointer
https://bugs.webkit.org/show_bug.cgi?id=326470
rdar://189266728

Reviewed by Said Abou-Hallawa.

Drawable RenderHTMLCanvas tracks the DisplayList recorders for its 
canvasDrawable
renderers. When one of these renderers is painted, it gets the recorder from the
drawableCanvas RenderHTMLCanvas and passes it to the rendering code through 
PaintInfo.
That means RenderHTMLCanvas and the painting code both hold the same recorder, 
so
shared ownership makes sense. To support that, make DisplayList::RecorderImpl
RefCounted.

Tests: Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp
       
Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp
* Source/WebCore/html/canvas/PaintRenderingContext2D.cpp:
(WebCore::PaintRenderingContext2D::drawingContext const):
(WebCore::PaintRenderingContext2D::replayDisplayList const):
(WebCore::PaintRenderingContext2D::didUpdateCanvasSizeProperties):
* Source/WebCore/html/canvas/PaintRenderingContext2D.h:
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForGlyphBuffer const):
* Source/WebCore/platform/graphics/ImageBufferDisplayListBackend.cpp:
(WebCore::ImageBufferDisplayListBackend::ImageBufferDisplayListBackend):
(WebCore::ImageBufferDisplayListBackend::copyNativeImage):
(WebCore::ImageBufferDisplayListBackend::sinkIntoPDFDocument):
* Source/WebCore/platform/graphics/ImageBufferDisplayListBackend.h:
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
(WebCore::DisplayList::RecorderImpl::create):
(WebCore::DisplayList::RecorderImpl::RecorderImpl): Deleted.
(): Deleted.
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
(WebCore::RenderHTMLCanvas::drawableRendererSnapshot const):
* Source/WebCore/rendering/RenderHTMLCanvas.h:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::create):
(WebKit::RemoteDisplayListRecorder::RemoteDisplayListRecorder):
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteSnapshotRecorder.cpp:
(WebKit::RemoteSnapshotRecorder::create):
(WebKit::RemoteSnapshotRecorder::RemoteSnapshotRecorder):
* Source/WebKit/GPUProcess/graphics/RemoteSnapshotRecorder.h:
* Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp:
* Tools/TestWebKitAPI/Tests/WebCore/cocoa/BifurcatedGraphicsContextTestsCG.cpp:
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, Basic)):
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, Text)):
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, Borders)):
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, TransformedClip)):
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, ApplyDeviceScaleFactor)):
(TestWebKitAPI::TEST(BifurcatedGraphicsContextTests, ClipToImageBuffer)):

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



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

Reply via email to