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

Reply via email to