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

Reply via email to