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

Reply via email to