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