Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fd0581b4940cf7594443c2f7b3503a26d4df8c58 https://github.com/WebKit/WebKit/commit/fd0581b4940cf7594443c2f7b3503a26d4df8c58 Author: Antoine Quint <grao...@webkit.org> Date: 2023-02-23 (Thu, 23 Feb 2023)
Changed paths: R LayoutTests/animations/cross-fade-webkit-mask-image-expected.txt R LayoutTests/animations/cross-fade-webkit-mask-image.html M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation.html M LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt R LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt M LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt M Source/WebCore/animation/CSSPropertyAnimation.cpp Log Message: ----------- [web-animations] mask-image should support discrete animation https://bugs.webkit.org/show_bug.cgi?id=252656 Reviewed by Dean Jackson. While specifications dictate that <image> properties have a discrete animation type, we actually interpolate such values by producing a -webkit-cross-fade() value. Chrome also does that, while Firefox adheres to the spec. However, in the case of mask-image, Chrome does not cross fade and adheres to the spec, making WebKit the outlier. We should align with the spec in this regard, which frankly makes more sense than cross-fading an image used as a mask and thus not rendered. We had to fix FillLayersPropertyWrapper which incorrectly assumed that the RenderStyle into which we were blending would have the same number of background or mask layers as the from and to values. We now correctly repeat previous layers as needed to accommodate for the length of the from and to values. Fixing this showed that the WPT test css/css-masking/animations/mask-image-interpolation.html was incorrect. While it correctly checked the discrete behavior where from / to values switch at the 0.5 progress mark, it failed to use test_no_interpolation() and thus expected interpolation for CSS Transitions instead of no transition. Finally, we remove animations/cross-fade-webkit-mask-image.html which is entirely superseded by WPT tests. * LayoutTests/animations/cross-fade-webkit-mask-image-expected.txt: Removed. * LayoutTests/animations/cross-fade-webkit-mask-image.html: Removed. * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation.html: * LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt: Removed. * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: * Source/WebCore/animation/CSSPropertyAnimation.cpp: Canonical link: https://commits.webkit.org/260756@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes