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

Reply via email to