Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9f3ee7b0bad6b2989d95e6000a7dc7412c49485c
https://github.com/WebKit/WebKit/commit/9f3ee7b0bad6b2989d95e6000a7dc7412c49485c
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-09-30 (Wed, 30 Sep 2026)
Changed paths:
M LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations
A LayoutTests/svg/repaint/resize-shape-next-to-layered-sibling-expected.txt
A LayoutTests/svg/repaint/resize-shape-next-to-layered-sibling.html
M Source/WebCore/rendering/ReferencedSVGResources.cpp
M Source/WebCore/rendering/RenderLayer.cpp
Log Message:
-----------
[LBSE] Fix missing repaints for HTML clients of SVG resources and redundant
repaints of SVG layers
https://bugs.webkit.org/show_bug.cgi?id=325613
Reviewed by Rob Buis.
recursiveUpdateLayerPositions() forced a full repaint of every SVG layer,
regardless if it needs repainting or not. setNeedsLayout() already marked
the corresponding layer needing a full repaint, if necessary. Other types
of repaints (e.g. the layout-free transform fast path) compare repaint rects
and thus catch moving layers as well, issuing repaints for them.
In one case we were missing to issues repaints: resourceChanged() in
CSSSVGResourceElementClient. Mark the client layer for a full repaint,
fixing HTML elements that reference e.g. SVG <clipPath> - that were not
repainted upon clip changes.
Fixes css3/masking/reference-clip-path-change-repaint.html on LBSE.
Test: svg/repaint/resize-shape-next-to-layered-sibling.html
* LayoutTests/platform/mac-tahoe-wk2-lbse-text/TestExpectations:
* LayoutTests/svg/repaint/resize-shape-next-to-layered-sibling-expected.txt:
Added.
* LayoutTests/svg/repaint/resize-shape-next-to-layered-sibling.html: Added.
* Source/WebCore/rendering/ReferencedSVGResources.cpp:
(WebCore::CSSSVGResourceElementClient::resourceChanged):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::recursiveUpdateLayerPositions):
Canonical link: https://commits.webkit.org/322264@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications