Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8e1e7a9f47f77abe15410dad509d5f4e3bc1791a
      
https://github.com/WebKit/WebKit/commit/8e1e7a9f47f77abe15410dad509d5f4e3bc1791a
  Author: Antti Koivisto <[email protected]>
  Date:   2026-09-18 (Fri, 18 Sep 2026)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/calc-size-height-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/calc-size-width-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-height-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-height-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-logical-properties-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-height-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-height-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-width-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-width-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-height-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-height-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-width-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-width-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-which-value-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-width-composition-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-width-interpolation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/interpolate-size-computed-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/interpolate-size-parsing-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/shadow-dom-expected.txt
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/CSSValueKeywords.in
    M Source/WebCore/rendering/style/RenderStyleConstants.cpp
    M Source/WebCore/rendering/style/RenderStyleConstants.h
    M Source/WebCore/style/computed/StyleComputedStyleBase.h
    M Source/WebCore/style/computed/data/StyleInheritedRareData.cpp
    M Source/WebCore/style/computed/data/StyleInheritedRareData.h
    M Source/WebCore/style/values/primitives/StyleKeyword+Mappings.h
    M Source/WebCore/style/values/primitives/StyleSizeOrKeyword+Blending.h

  Log Message:
  -----------
  [css-values-5 calc-size()] Implement interpolate-size
https://bugs.webkit.org/show_bug.cgi?id=324460
rdar://187701518

Reviewed by Alan Baradlay.

https://drafts.csswg.org/css-values-5/#interpolate-size

With "interpolate-size: allow-keywords" keyword valued size properties can 
transition with other values

height: 0px; -> height: max-content;

without using calc-size() explicitly. Internally this is implemented as 
calc-size() interpolation.

The patch also removes an incorrect blending shortcut that artificially made 
some tests pass.
Per spec calc-size() interpolation needs to also happen at 0 and 1 end points. 
The tests will
start passing when the relevant layout bits are implemented.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/html/rendering/widgets/shadow-dom-expected.txt:

These enumerate every property, so a new one shifts their counts.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/calc-size-height-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/calc-size-width-interpolation-expected.txt:

These had bad PASSes from the shortcut.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-height-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-height-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-logical-properties-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-height-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-height-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-width-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-max-width-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-height-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-height-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-width-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-min-width-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-which-value-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-width-composition-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/animation/interpolate-size-width-interpolation-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/interpolate-size-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-values/calc-size/interpolate-size-parsing-expected.txt:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSValueKeywords.in:
* Source/WebCore/rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* Source/WebCore/rendering/style/RenderStyleConstants.h:
* Source/WebCore/style/computed/StyleComputedStyleBase.h:
* Source/WebCore/style/computed/data/StyleInheritedRareData.cpp:
(WebCore::Style::InheritedRareData::InheritedRareData):
(WebCore::Style::InheritedRareData::operator== const):
(WebCore::Style::InheritedRareData::dumpDifferences const):

Add the style bit for intepolate-size.

* Source/WebCore/style/computed/data/StyleInheritedRareData.h:
* Source/WebCore/style/values/primitives/StyleKeyword+Mappings.h:
* Source/WebCore/style/values/primitives/StyleSizeOrKeyword+Blending.h:
(WebCore::Style::Blending<StyleType>::canBlend):
(WebCore::Style::Blending<StyleType>::requiresInterpolationForAccumulativeIteration):
(WebCore::Style::Blending<StyleType>::blend):
(WebCore::Style::Blending<StyleType>::isBareKeyword):
(WebCore::Style::Blending<StyleType>::interpolatesUsingCalcSize):

Determine if we should if we should promote plain values to be blended as 
calc-size().

(WebCore::Style::Blending<StyleType>::blendCalcSize):

Remove the shortcuts. They were here to artificially make some tests pass 
without the required layout bits.
They will start passing when layout side is implemented.

Also implement additive blending.

(WebCore::Style::Blending<StyleType>::involvesCalcSize): Deleted.

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



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

Reply via email to