Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a1d5778734aef3e3ef54977adc26b0a5a9c4e0e6
https://github.com/WebKit/WebKit/commit/a1d5778734aef3e3ef54977adc26b0a5a9c4e0e6
Author: Ahmad Saleem <[email protected]>
Date: 2026-09-27 (Sun, 27 Sep 2026)
Changed paths:
A LayoutTests/svg/repaint/paint-order-change-repaint-expected.txt
A LayoutTests/svg/repaint/paint-order-change-repaint.html
M Source/WebCore/style/StyleDifference.cpp
Log Message:
-----------
[SVG] Changing only paint-order does not trigger a repaint
https://bugs.webkit.org/show_bug.cgi?id=325428
rdar://188533466
Reviewed by Sam Weinig.
paint-order is a painting-only property, but it was never compared by any
of the style-diffing helpers, so mutating only paint-order produced
StyleDifference::Equal and no repaint was scheduled. The element kept its
stale fill/stroke/markers ordering until some unrelated change forced a
paint.
The property has never been diffed. SVGRenderStyle::diff() omitted it when
paint-order was first introduced, even though the change was meant to
repaint on change, and the omission was carried along unchanged when
paint-order moved into StyleRareInheritedData and again when the diffing
code was extracted into StyleDifference.cpp.
Compare paintOrder in rareInheritedDataChangeRequiresRepaint() so that a
paint-order-only change resolves to StyleDifference::Repaint.
Test: svg/repaint/paint-order-change-repaint.html
* LayoutTests/svg/repaint/paint-order-change-repaint-expected.txt: Added.
* LayoutTests/svg/repaint/paint-order-change-repaint.html: Added.
* Source/WebCore/style/StyleDifference.cpp:
Canonical link: https://commits.webkit.org/322013@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications