Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fd018bbf4814908dc0aba3b5cd262ca9767ec173
https://github.com/WebKit/WebKit/commit/fd018bbf4814908dc0aba3b5cd262ca9767ec173
Author: Sam Weinig <[email protected]>
Date: 2026-05-31 (Sun, 31 May 2026)
Changed paths:
M LayoutTests/fast/masking/parsing-mask-mode-expected.txt
M LayoutTests/fast/masking/parsing-mask-mode.html
M LayoutTests/fast/masking/parsing-mask-source-type-expected.txt
M LayoutTests/fast/masking/parsing-mask-source-type.html
M
LayoutTests/imported/w3c/web-platform-tests/css/compositing/parsing/background-blend-mode-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/compositing/parsing/background-blend-mode-computed-multiple-expected.txt
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-backgrounds/animations/background-position-interpolation-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-position-interpolation.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-attachment-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-attachment-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-clip-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-clip-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-origin-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-origin-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-y-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-y-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-repeat-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-repeat-computed.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed.html
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/parsing/mask-size-computed-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-size-computed.html
M Source/WebCore/css/scripts/process-css-properties.py
M Source/WebCore/style/StyleExtractorCustom.h
M Source/WebCore/style/StyleInterpolationWrappers.h
M Source/WebCore/style/values/animations/StyleAnimation.h
M Source/WebCore/style/values/backgrounds/StyleBackgroundLayer.h
M Source/WebCore/style/values/masking/StyleMaskLayer.h
M Source/WebCore/style/values/primitives/StyleCoordinatedValueList.h
M Source/WebCore/style/values/primitives/StyleCoordinatedValueListValue.h
M Source/WebCore/style/values/scroll-animations/StyleScrollTimeline.h
M Source/WebCore/style/values/scroll-animations/StyleViewTimeline.h
M Source/WebCore/style/values/transitions/StyleTransition.h
Log Message:
-----------
Make background/mask coordinated property list resolved values match the spec
https://bugs.webkit.org/show_bug.cgi?id=315771
Reviewed by Darin Adler.
Unifies the behavior of the serialization of coordinated list values computed
values
to ignore any truncation or repetition the used value performs, matching the
spec:
"The computed values of the coordinating list properties are not affected by
such
truncation or repetition."
(https://drafts.csswg.org/css-values-4/#linked-properties)
This is a subtle change in the serialization behavior for the computed value of
the
background-* and mask-* properties, when a non-base property (e.g. a
background-*
or mask-* property that isn't background-image or mask-image) has a different
number
of specified items than it corresponding base property. All other coordinated
list
properties already had this behavior. This is not expected to be a compatibility
problem as:
1. Relying on the specifics of computed value serialization is rare.
2. Browser engines have not agreed here.
3. It only changes behavior in the uncommon case of using different
numbers of items for different background/mask properties.
In addition, this change updates the interpolation code for coordinated list
values
to match the Web Animation definition for interpolating repeatable lists:
"Same as by computed value except that if the two lists have differing numbers
of
items, they are first repeated to the least common multiple number of items.
Each
item is then combined by computed value. If a pair of values cannot be
combined or
if any component value uses discrete animation, then the property values
combine
as discrete."
(https://drafts.csswg.org/web-animations-1/#repeatable-list).
Previously, instead of repeating the lists to least common multiple number of
items,
we took the minimum number of items. The old computed value serialization code
was
masking the issue in the WPT tests, due to the way the tests normalize the
expected
values specified in the test by setting them and getting the computed value they
produce.
* LayoutTests/fast/masking/parsing-mask-mode-expected.txt:
* LayoutTests/fast/masking/parsing-mask-mode.html:
* LayoutTests/fast/masking/parsing-mask-source-type-expected.txt:
* LayoutTests/fast/masking/parsing-mask-source-type.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/compositing/parsing/background-blend-mode-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/compositing/parsing/background-blend-mode-computed-multiple-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-position-interpolation-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-position-interpolation.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/background-size-interpolation.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-attachment-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-attachment-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-clip-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-clip-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-origin-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-origin-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-y-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-y-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-repeat-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-repeat-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-size-computed-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-size-computed.html:
* Source/WebCore/css/scripts/process-css-properties.py:
* Source/WebCore/style/StyleExtractorCustom.h:
* Source/WebCore/style/StyleInterpolationWrappers.h:
* Source/WebCore/style/values/animations/StyleAnimation.h:
* Source/WebCore/style/values/backgrounds/StyleBackgroundLayer.h:
* Source/WebCore/style/values/masking/StyleMaskLayer.h:
* Source/WebCore/style/values/primitives/StyleCoordinatedValueList.h:
* Source/WebCore/style/values/primitives/StyleCoordinatedValueListValue.h:
* Source/WebCore/style/values/scroll-animations/StyleScrollTimeline.h:
* Source/WebCore/style/values/scroll-animations/StyleViewTimeline.h:
* Source/WebCore/style/values/transitions/StyleTransition.h:
Canonical link: https://commits.webkit.org/314242@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications