Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: de9d507cce3a678c1442a9494677a890adb73c56
      
https://github.com/WebKit/WebKit/commit/de9d507cce3a678c1442a9494677a890adb73c56
  Author: Andrew Martinez <[email protected]>
  Date:   2026-10-09 (Fri, 09 Oct 2026)

  Changed paths:
    A LayoutTests/fast/repaint/background-image-currentcolor-change-expected.txt
    A LayoutTests/fast/repaint/background-image-currentcolor-change.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint-expected.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint-ref.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint.html
    M Source/WebCore/style/StyleDifference.cpp
    M Source/WebCore/style/computed/data/StyleBackgroundData.cpp
    M Source/WebCore/style/computed/data/StyleBackgroundData.h
    M Source/WebCore/style/values/images/StyleGradient.cpp
    M Source/WebCore/style/values/images/StyleGradient.h
    M Source/WebCore/style/values/images/kinds/StyleCachedImage.h
    M Source/WebCore/style/values/images/kinds/StyleCanvasImage.h
    M Source/WebCore/style/values/images/kinds/StyleColorImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleColorImage.h
    M Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.h
    M Source/WebCore/style/values/images/kinds/StyleFilterImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleFilterImage.h
    M Source/WebCore/style/values/images/kinds/StyleGradientImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleGradientImage.h
    M Source/WebCore/style/values/images/kinds/StyleImage.h
    M Source/WebCore/style/values/images/kinds/StyleInvalidImage.h
    M Source/WebCore/style/values/images/kinds/StyleMultiImage.cpp
    M Source/WebCore/style/values/images/kinds/StyleMultiImage.h
    M Source/WebCore/style/values/images/kinds/StyleNamedImage.h
    M Source/WebCore/style/values/images/kinds/StylePaintImage.h

  Log Message:
  -----------
  Elements using background image from currentColor doesn't repaint when 
current color changes
rdar://188036420
https://bugs.webkit.org/show_bug.cgi?id=324766

Reviewed by Kiet Ho.

isEquivalentForPainting() only checked background-color for currentColor. 
currentColors inside background images, like linear-gradient()
did not trigger repaints when the objects changed.

Style::Image::containsCurrentColor() now checks for currentColors in gradients, 
image, crossfade, filter, and image-set.
Every background layer is checked in 
BackgroundData::backgroundContainsCurrentColor().

Test: fast/repaint/background-image-currentcolor-change.html

* LayoutTests/fast/repaint/background-image-currentcolor-change-expected.txt: 
Added.
* LayoutTests/fast/repaint/background-image-currentcolor-change.html: Added.
* Source/WebCore/style/StyleDifference.cpp:
* Source/WebCore/style/computed/data/StyleBackgroundData.cpp:
(WebCore::Style::BackgroundData::containsCurrentColor const):
(WebCore::Style::BackgroundData::backgroundContainsCurrentColor const):
* Source/WebCore/style/computed/data/StyleBackgroundData.h:
* Source/WebCore/style/values/images/StyleGradient.cpp:
(WebCore::Style::stopColorContainsCurrentColor):
(WebCore::Style::stopsContainCurrentColor):
(WebCore::Style::containsCurrentColor):
(WebCore::Style::stopsAreCacheable):
(WebCore::Style::stopColorIsCacheable): Deleted.
* Source/WebCore/style/values/images/StyleGradient.h:
* Source/WebCore/style/values/images/kinds/StyleColorImage.cpp:
(WebCore::Style::ColorImage::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleColorImage.h:
* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.cpp:
(WebCore::Style::CrossfadeImage::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleCrossfadeImage.h:
* Source/WebCore/style/values/images/kinds/StyleFilterImage.cpp:
(WebCore::Style::FilterImage::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleFilterImage.h:
* Source/WebCore/style/values/images/kinds/StyleGradientImage.cpp:
(WebCore::Style::GradientImage::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleGradientImage.h:
* Source/WebCore/style/values/images/kinds/StyleImage.h:
(WebCore::Style::Image::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleMultiImage.cpp:
(WebCore::Style::MultiImage::containsCurrentColor const):
* Source/WebCore/style/values/images/kinds/StyleMultiImage.h:
* Source/WebCore/style/values/images/kinds/StyleCachedImage.h:
* Source/WebCore/style/values/images/kinds/StyleCanvasImage.h:
* Source/WebCore/style/values/images/kinds/StyleInvalidImage.h:
* Source/WebCore/style/values/images/kinds/StyleNamedImage.h:
* Source/WebCore/style/values/images/kinds/StylePaintImage.h:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint-expected.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint-ref.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-image-gradient-currentcolor-self-repaint.html:
 Added.

Canonical link: https://commits.webkit.org/323240@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to