Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4cf2513d2b5f4c523ccec5a626be91e3728309e9
https://github.com/WebKit/WebKit/commit/4cf2513d2b5f4c523ccec5a626be91e3728309e9
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
A
LayoutTests/svg/filters/filter-with-layered-child-in-transformed-group-expected.svg
A LayoutTests/svg/filters/filter-with-layered-child-in-transformed-group.svg
M Source/WebCore/rendering/RenderLayer.cpp
Log Message:
-----------
[LBSE] Fix misplaced child layers of a filtered element with a transformed
ancestor layer
https://bugs.webkit.org/show_bug.cgi?id=325654
Reviewed by Rob Buis.
An SVG filter paints into a buffer that uses the user space of the element.
Child layers paint relative to the rootLayer, so they must be shifted into
that user space. This only worked so far, when the filtered layer is its own
rootLayer. When the rootLayer is a transformed ancestor, the child layers were
off by the offset of the filtered layer from the transformed ancestor. Always
shift them by svgFilterOffset - columnAwareOffsetFromRoot.
This moves the blurred <use> in svg/batik/text/textProperties.svg to the
right place - the test still fails because of an unrelated text clip-path
difference, that needs a fix on its own.
Therefore add a new dedicated test, verifying the regression is gone.
*
LayoutTests/svg/filters/filter-with-layered-child-in-transformed-group-expected.svg:
Added.
* LayoutTests/svg/filters/filter-with-layered-child-in-transformed-group.svg:
Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
Canonical link: https://commits.webkit.org/322181@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications