Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b928857a1b56088f0bd78472100d60afd7c2f829
https://github.com/WebKit/WebKit/commit/b928857a1b56088f0bd78472100d60afd7c2f829
Author: Said Abou-Hallawa <[email protected]>
Date: 2026-09-10 (Thu, 10 Sep 2026)
Changed paths:
M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteSnapshotRecorderProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteSnapshotRecorderProxy.h
M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm
Log Message:
-----------
Remote snapshotting does not render SVG images
https://bugs.webkit.org/show_bug.cgi?id=323884
rdar://187125310
Reviewed by Simon Fraser.
Remote snapshotting creates a recorder with an empty clipping rectangle.
SVGImage
intersects the srcRect with the context clipping rectangle before drawing.
The result of this intersection is always an empty rectangle. Therefore all
SVGImages are not rendered.
The fix is to pass the snapshotRect to the recorder creation as the initialClip.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createSnapshotRecorder):
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteSnapshotRecorderProxy.cpp:
(WebKit::RemoteSnapshotRecorderProxy::RemoteSnapshotRecorderProxy):
* Source/WebKit/WebProcess/GPU/graphics/RemoteSnapshotRecorderProxy.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::drawPrintingRectToSnapshot):
(WebKit::WebPage::drawPrintingPagesToSnapshot):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeRemoteSnapshot):
(WebKit::WebPage::drawToSnapshot):
(WebKit::WebPage::drawFrameToSnapshot):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewSnapshot.mm:
(TestWebKitAPI::TEST(WKWebView, RemoteSnapshotSVGImageClipping)):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::drawPrintingToSnapshotiOS):
(WebKit::WebPage::drawPrintingPagesToSnapshotiOS):
Canonical link: https://commits.webkit.org/320871@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications