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