Title: [274147] trunk
Revision
274147
Author
[email protected]
Date
2021-03-09 07:51:48 -0800 (Tue, 09 Mar 2021)

Log Message

Correctly blend column-width and column-count CSS properties
https://bugs.webkit.org/show_bug.cgi?id=222969

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 160 PASS results. We now pass all the column-width and column-count interpolation tests.

* web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt:
* web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

We used to simply blend column-width and column-count as float and unsigned short properties
with no minimum value and no accounting for the "auto" value which only blends discretely.

We generalize some of the code added for the z-index wrapper by creating a new AutoPropertyWrapper
which takes into two method arguments for the hasAuto() and setHasAuto() methods on RenderStyle
and an optional minimum value, which we set to 0 for column-width, 1 for column-count and don't
specify for z-index since it doesn't have a minimum value.

* animation/CSSPropertyAnimation.cpp:
(WebCore::AutoPropertyWrapper::AutoPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper): Deleted.

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-09 15:51:48 UTC (rev 274147)
@@ -1,3 +1,18 @@
+2021-03-09  Antoine Quint  <[email protected]>
+
+        Correctly blend column-width and column-count CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=222969
+
+        Reviewed by Antti Koivisto.
+
+        Add an extra 160 PASS results. We now pass all the column-width and column-count interpolation tests.
+
+        * web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt:
+        * web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
+
 2021-03-08  Antoine Quint  <[email protected]>
 
         Select CSS properties animating as float should not allow negative values

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt	2021-03-09 15:51:48 UTC (rev 274147)
@@ -23,34 +23,34 @@
 PASS Web Animations: property <column-count> from neutral to [20] at (0.7) should be [17]
 PASS Web Animations: property <column-count> from neutral to [20] at (1) should be [20]
 PASS Web Animations: property <column-count> from neutral to [20] at (1.5) should be [25]
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (-0.3) should be [20] assert_equals: expected "20 " but got "65530 "
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0) should be [20] assert_equals: expected "20 " but got "0 "
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.3) should be [20] assert_equals: expected "20 " but got "6 "
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (-0.3) should be [20]
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (0) should be [20]
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.3) should be [20]
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.5) should be [20]
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.6) should be [20]
 PASS CSS Transitions: property <column-count> from [auto] to [20] at (1) should be [20]
-FAIL CSS Transitions: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (-0.3) should be [20] assert_equals: expected "20 " but got "65530 "
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0) should be [20] assert_equals: expected "20 " but got "0 "
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.3) should be [20] assert_equals: expected "20 " but got "6 "
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
+PASS CSS Transitions: property <column-count> from [auto] to [20] at (1.5) should be [20]
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (-0.3) should be [20]
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0) should be [20]
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.3) should be [20]
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.5) should be [20]
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.6) should be [20]
 PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (1) should be [20]
-FAIL CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65530 "
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (0) should be [auto] assert_equals: expected "auto " but got "0 "
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto] assert_equals: expected "auto " but got "6 "
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
+PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (1.5) should be [20]
+PASS CSS Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto]
+PASS CSS Animations: property <column-count> from [auto] to [20] at (0) should be [auto]
+PASS CSS Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto]
+PASS CSS Animations: property <column-count> from [auto] to [20] at (0.5) should be [20]
+PASS CSS Animations: property <column-count> from [auto] to [20] at (0.6) should be [20]
 PASS CSS Animations: property <column-count> from [auto] to [20] at (1) should be [20]
-FAIL CSS Animations: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
-FAIL Web Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65530 "
-FAIL Web Animations: property <column-count> from [auto] to [20] at (0) should be [auto] assert_equals: expected "auto " but got "0 "
-FAIL Web Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto] assert_equals: expected "auto " but got "6 "
-FAIL Web Animations: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
-FAIL Web Animations: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
+PASS CSS Animations: property <column-count> from [auto] to [20] at (1.5) should be [20]
+PASS Web Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto]
+PASS Web Animations: property <column-count> from [auto] to [20] at (0) should be [auto]
+PASS Web Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto]
+PASS Web Animations: property <column-count> from [auto] to [20] at (0.5) should be [20]
+PASS Web Animations: property <column-count> from [auto] to [20] at (0.6) should be [20]
 PASS Web Animations: property <column-count> from [auto] to [20] at (1) should be [20]
-FAIL Web Animations: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
+PASS Web Animations: property <column-count> from [auto] to [20] at (1.5) should be [20]
 PASS CSS Transitions: property <column-count> from [inherit] to [20] at (-0.5) should be [35]
 PASS CSS Transitions: property <column-count> from [inherit] to [20] at (0) should be [30]
 PASS CSS Transitions: property <column-count> from [inherit] to [20] at (0.3) should be [27]
@@ -80,79 +80,79 @@
 PASS CSS Transitions: property <column-count> from [10] to [1] at (0.3) should be [7]
 PASS CSS Transitions: property <column-count> from [10] to [1] at (0.7) should be [4]
 PASS CSS Transitions: property <column-count> from [10] to [1] at (1) should be [1]
-FAIL CSS Transitions: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
+PASS CSS Transitions: property <column-count> from [10] to [1] at (1.5) should be [1]
 PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (-0.5) should be [15]
 PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (0) should be [10]
 PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (0.3) should be [7]
 PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (0.7) should be [4]
 PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (1) should be [1]
-FAIL CSS Transitions with transition: all: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
+PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (1.5) should be [1]
 PASS CSS Animations: property <column-count> from [10] to [1] at (-0.5) should be [15]
 PASS CSS Animations: property <column-count> from [10] to [1] at (0) should be [10]
 PASS CSS Animations: property <column-count> from [10] to [1] at (0.3) should be [7]
 PASS CSS Animations: property <column-count> from [10] to [1] at (0.7) should be [4]
 PASS CSS Animations: property <column-count> from [10] to [1] at (1) should be [1]
-FAIL CSS Animations: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
+PASS CSS Animations: property <column-count> from [10] to [1] at (1.5) should be [1]
 PASS Web Animations: property <column-count> from [10] to [1] at (-0.5) should be [15]
 PASS Web Animations: property <column-count> from [10] to [1] at (0) should be [10]
 PASS Web Animations: property <column-count> from [10] to [1] at (0.3) should be [7]
 PASS Web Animations: property <column-count> from [10] to [1] at (0.7) should be [4]
 PASS Web Animations: property <column-count> from [10] to [1] at (1) should be [1]
-FAIL Web Animations: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS Web Animations: property <column-count> from [10] to [1] at (1.5) should be [1]
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (-0.3) should be [5]
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (0) should be [5]
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.3) should be [5]
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.5) should be [5]
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.6) should be [5]
 PASS CSS Transitions: property <column-count> from [initial] to [5] at (1) should be [5]
-FAIL CSS Transitions: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Transitions: property <column-count> from [initial] to [5] at (1.5) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (-0.3) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.3) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.5) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.6) should be [5]
 PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (1) should be [5]
-FAIL CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial] assert_equals: expected "auto " but got "65535 "
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (0) should be [initial] assert_equals: expected "auto " but got "0 "
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial] assert_equals: expected "auto " but got "2 "
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (1.5) should be [5]
+PASS CSS Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial]
+PASS CSS Animations: property <column-count> from [initial] to [5] at (0) should be [initial]
+PASS CSS Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial]
+PASS CSS Animations: property <column-count> from [initial] to [5] at (0.5) should be [5]
+PASS CSS Animations: property <column-count> from [initial] to [5] at (0.6) should be [5]
 PASS CSS Animations: property <column-count> from [initial] to [5] at (1) should be [5]
-FAIL CSS Animations: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL Web Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial] assert_equals: expected "auto " but got "65535 "
-FAIL Web Animations: property <column-count> from [initial] to [5] at (0) should be [initial] assert_equals: expected "auto " but got "0 "
-FAIL Web Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial] assert_equals: expected "auto " but got "2 "
-FAIL Web Animations: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL Web Animations: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Animations: property <column-count> from [initial] to [5] at (1.5) should be [5]
+PASS Web Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial]
+PASS Web Animations: property <column-count> from [initial] to [5] at (0) should be [initial]
+PASS Web Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial]
+PASS Web Animations: property <column-count> from [initial] to [5] at (0.5) should be [5]
+PASS Web Animations: property <column-count> from [initial] to [5] at (0.6) should be [5]
 PASS Web Animations: property <column-count> from [initial] to [5] at (1) should be [5]
-FAIL Web Animations: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS Web Animations: property <column-count> from [initial] to [5] at (1.5) should be [5]
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (-0.3) should be [5]
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (0) should be [5]
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.3) should be [5]
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.5) should be [5]
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.6) should be [5]
 PASS CSS Transitions: property <column-count> from [unset] to [5] at (1) should be [5]
-FAIL CSS Transitions: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Transitions: property <column-count> from [unset] to [5] at (1.5) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (-0.3) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.3) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.5) should be [5]
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.6) should be [5]
 PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (1) should be [5]
-FAIL CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset] assert_equals: expected "auto " but got "65535 "
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (0) should be [unset] assert_equals: expected "auto " but got "0 "
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset] assert_equals: expected "auto " but got "2 "
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (1.5) should be [5]
+PASS CSS Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset]
+PASS CSS Animations: property <column-count> from [unset] to [5] at (0) should be [unset]
+PASS CSS Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset]
+PASS CSS Animations: property <column-count> from [unset] to [5] at (0.5) should be [5]
+PASS CSS Animations: property <column-count> from [unset] to [5] at (0.6) should be [5]
 PASS CSS Animations: property <column-count> from [unset] to [5] at (1) should be [5]
-FAIL CSS Animations: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
-FAIL Web Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset] assert_equals: expected "auto " but got "65535 "
-FAIL Web Animations: property <column-count> from [unset] to [5] at (0) should be [unset] assert_equals: expected "auto " but got "0 "
-FAIL Web Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset] assert_equals: expected "auto " but got "2 "
-FAIL Web Animations: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
-FAIL Web Animations: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
+PASS CSS Animations: property <column-count> from [unset] to [5] at (1.5) should be [5]
+PASS Web Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset]
+PASS Web Animations: property <column-count> from [unset] to [5] at (0) should be [unset]
+PASS Web Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset]
+PASS Web Animations: property <column-count> from [unset] to [5] at (0.5) should be [5]
+PASS Web Animations: property <column-count> from [unset] to [5] at (0.6) should be [5]
 PASS Web Animations: property <column-count> from [unset] to [5] at (1) should be [5]
-FAIL Web Animations: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
+PASS Web Animations: property <column-count> from [unset] to [5] at (1.5) should be [5]
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt	2021-03-09 15:51:48 UTC (rev 274147)
@@ -31,34 +31,34 @@
 PASS Web Animations: property <column-width> from neutral to [20px] at (0.6) should be [16px]
 PASS Web Animations: property <column-width> from neutral to [20px] at (1) should be [20px]
 PASS Web Animations: property <column-width> from neutral to [20px] at (1.5) should be [25px]
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (-0.3) should be [20px]
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0) should be [20px]
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.3) should be [20px]
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
 PASS CSS Transitions: property <column-width> from [initial] to [20px] at (1) should be [20px]
-FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (-0.3) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.3) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
 PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (1) should be [20px]
-FAIL CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0) should be [initial] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial] assert_equals: expected "auto " but got "6px "
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial]
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (0) should be [initial]
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial]
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
 PASS CSS Animations: property <column-width> from [initial] to [20px] at (1) should be [20px]
-FAIL CSS Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (0) should be [initial] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial] assert_equals: expected "auto " but got "6px "
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
+PASS Web Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial]
+PASS Web Animations: property <column-width> from [initial] to [20px] at (0) should be [initial]
+PASS Web Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial]
+PASS Web Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
+PASS Web Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
 PASS Web Animations: property <column-width> from [initial] to [20px] at (1) should be [20px]
-FAIL Web Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
+PASS Web Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
 PASS CSS Transitions: property <column-width> from [inherit] to [20px] at (-20) should be [230px]
 PASS CSS Transitions: property <column-width> from [inherit] to [20px] at (-1) should be [40px]
 PASS CSS Transitions: property <column-width> from [inherit] to [20px] at (-0.3) should be [33px]
@@ -91,34 +91,34 @@
 PASS Web Animations: property <column-width> from [inherit] to [20px] at (0.6) should be [24px]
 PASS Web Animations: property <column-width> from [inherit] to [20px] at (1) should be [20px]
 PASS Web Animations: property <column-width> from [inherit] to [20px] at (1.5) should be [15px]
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (-0.3) should be [20px]
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0) should be [20px]
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.3) should be [20px]
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
 PASS CSS Transitions: property <column-width> from [unset] to [20px] at (1) should be [20px]
-FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (-0.3) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.3) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
 PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (1) should be [20px]
-FAIL CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0) should be [unset] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset] assert_equals: expected "auto " but got "6px "
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset]
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (0) should be [unset]
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset]
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
 PASS CSS Animations: property <column-width> from [unset] to [20px] at (1) should be [20px]
-FAIL CSS Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (0) should be [unset] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset] assert_equals: expected "auto " but got "6px "
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
+PASS CSS Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
+PASS Web Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset]
+PASS Web Animations: property <column-width> from [unset] to [20px] at (0) should be [unset]
+PASS Web Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset]
+PASS Web Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
+PASS Web Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
 PASS Web Animations: property <column-width> from [unset] to [20px] at (1) should be [20px]
-FAIL Web Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
+PASS Web Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
 PASS CSS Transitions: property <column-width> from [50px] to [100px] at (-20) should be [1em]
 PASS CSS Transitions: property <column-width> from [50px] to [100px] at (-1) should be [1em]
 PASS CSS Transitions: property <column-width> from [50px] to [100px] at (-0.3) should be [35px]
@@ -151,32 +151,32 @@
 PASS Web Animations: property <column-width> from [50px] to [100px] at (0.6) should be [80px]
 PASS Web Animations: property <column-width> from [50px] to [100px] at (1) should be [100px]
 PASS Web Animations: property <column-width> from [50px] to [100px] at (1.5) should be [125px]
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0) should be [auto] assert_equals: expected "auto " but got "50px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.3) should be [auto] assert_equals: expected "auto " but got "35px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0) should be [auto] assert_equals: expected "auto " but got "50px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.3) should be [auto] assert_equals: expected "auto " but got "35px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px] assert_equals: expected "50px " but got "65px "
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (-0.3) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.3) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (1) should be [auto]
+PASS CSS Transitions: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (-0.3) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.3) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1) should be [auto]
+PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px]
 PASS CSS Animations: property <column-width> from [50px] to [auto] at (0) should be [50px]
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px] assert_equals: expected "50px " but got "35px "
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL CSS Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px] assert_equals: expected "50px " but got "65px "
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px]
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (1) should be [auto]
+PASS CSS Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
+PASS Web Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px]
 PASS Web Animations: property <column-width> from [50px] to [auto] at (0) should be [50px]
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px] assert_equals: expected "50px " but got "35px "
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
-FAIL Web Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
+PASS Web Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px]
+PASS Web Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
+PASS Web Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
+PASS Web Animations: property <column-width> from [50px] to [auto] at (1) should be [auto]
+PASS Web Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt	2021-03-09 15:51:48 UTC (rev 274147)
@@ -116,7 +116,7 @@
 FAIL column-count: positive integer assert_equals: The value should be 3 at 0ms expected "3" but got "2"
 PASS column-count (type: discrete) has testAccumulation function
 PASS column-count: "10" onto "auto"
-FAIL column-count: "auto" onto "10" assert_equals: The value should be auto at 0ms expected "auto" but got "0"
+PASS column-count: "auto" onto "10"
 PASS column-gap (type: length) has testAccumulation function
 FAIL column-gap: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
 FAIL column-gap: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
@@ -144,7 +144,7 @@
 FAIL column-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
 PASS column-width (type: discrete) has testAccumulation function
 PASS column-width: "1px" onto "auto"
-FAIL column-width: "auto" onto "1px" assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
+PASS column-width: "auto" onto "1px"
 PASS cursor (type: discrete) has testAccumulation function
 PASS cursor: "wait" onto "pointer"
 PASS cursor: "pointer" onto "wait"

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt	2021-03-09 15:51:48 UTC (rev 274147)
@@ -116,7 +116,7 @@
 FAIL column-count: positive integer assert_equals: The value should be 3 at 0ms expected "3" but got "2"
 PASS column-count (type: discrete) has testAddition function
 PASS column-count: "10" onto "auto"
-FAIL column-count: "auto" onto "10" assert_equals: The value should be auto at 0ms expected "auto" but got "0"
+PASS column-count: "auto" onto "10"
 PASS column-gap (type: length) has testAddition function
 FAIL column-gap: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
 FAIL column-gap: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
@@ -144,7 +144,7 @@
 FAIL column-width: length of rem assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
 PASS column-width (type: discrete) has testAddition function
 PASS column-width: "1px" onto "auto"
-FAIL column-width: "auto" onto "1px" assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
+PASS column-width: "auto" onto "1px"
 PASS cursor (type: discrete) has testAddition function
 PASS cursor: "wait" onto "pointer"
 PASS cursor: "pointer" onto "wait"

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt (274146 => 274147)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt	2021-03-09 15:51:48 UTC (rev 274147)
@@ -136,9 +136,9 @@
 PASS column-count (type: positiveInteger) has testInterpolation function
 PASS column-count supports animating as a positive integer
 PASS column-count (type: discrete) has testInterpolation function
-FAIL column-count uses discrete animation when animating between "auto" and "10" with linear easing assert_equals: The value should be auto at 0ms expected "auto" but got "0"
-FAIL column-count uses discrete animation when animating between "auto" and "10" with effect easing assert_equals: The value should be auto at 0ms expected "auto" but got "0"
-FAIL column-count uses discrete animation when animating between "auto" and "10" with keyframe easing assert_equals: The value should be auto at 0ms expected "auto" but got "0"
+PASS column-count uses discrete animation when animating between "auto" and "10" with linear easing
+PASS column-count uses discrete animation when animating between "auto" and "10" with effect easing
+PASS column-count uses discrete animation when animating between "auto" and "10" with keyframe easing
 PASS column-gap (type: length) has testInterpolation function
 PASS column-gap supports animating as a length
 PASS column-gap supports animating as a length of rem
@@ -168,9 +168,9 @@
 PASS column-width supports animating as a length
 PASS column-width supports animating as a length of rem
 PASS column-width (type: discrete) has testInterpolation function
-FAIL column-width uses discrete animation when animating between "auto" and "1px" with linear easing assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
-FAIL column-width uses discrete animation when animating between "auto" and "1px" with effect easing assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
-FAIL column-width uses discrete animation when animating between "auto" and "1px" with keyframe easing assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
+PASS column-width uses discrete animation when animating between "auto" and "1px" with linear easing
+PASS column-width uses discrete animation when animating between "auto" and "1px" with effect easing
+PASS column-width uses discrete animation when animating between "auto" and "1px" with keyframe easing
 PASS cursor (type: discrete) has testInterpolation function
 PASS cursor uses discrete animation when animating between "pointer" and "wait" with linear easing
 PASS cursor uses discrete animation when animating between "pointer" and "wait" with effect easing

Modified: trunk/Source/WebCore/ChangeLog (274146 => 274147)


--- trunk/Source/WebCore/ChangeLog	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/Source/WebCore/ChangeLog	2021-03-09 15:51:48 UTC (rev 274147)
@@ -1,3 +1,23 @@
+2021-03-09  Antoine Quint  <[email protected]>
+
+        Correctly blend column-width and column-count CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=222969
+
+        Reviewed by Antti Koivisto.
+
+        We used to simply blend column-width and column-count as float and unsigned short properties
+        with no minimum value and no accounting for the "auto" value which only blends discretely.
+
+        We generalize some of the code added for the z-index wrapper by creating a new AutoPropertyWrapper
+        which takes into two method arguments for the hasAuto() and setHasAuto() methods on RenderStyle
+        and an optional minimum value, which we set to 0 for column-width, 1 for column-count and don't
+        specify for z-index since it doesn't have a minimum value.
+
+        * animation/CSSPropertyAnimation.cpp:
+        (WebCore::AutoPropertyWrapper::AutoPropertyWrapper):
+        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
+        (WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper): Deleted.
+
 2021-03-09  Carlos Garcia Campos  <[email protected]>
 
         Suspend widget hierarchy updates while executing node insertion

Modified: trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp (274146 => 274147)


--- trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-09 15:10:00 UTC (rev 274146)
+++ trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-09 15:51:48 UTC (rev 274147)
@@ -1698,34 +1698,47 @@
     }
 };
 
-class ZIndexPropertyWrapper : public PropertyWrapper<int> {
+template <typename T>
+class AutoPropertyWrapper : public PropertyWrapper<T> {
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    ZIndexPropertyWrapper()
-        : PropertyWrapper<int>(CSSPropertyZIndex, &RenderStyle::specifiedZIndex, &RenderStyle::setSpecifiedZIndex)
+    AutoPropertyWrapper(CSSPropertyID prop, T (RenderStyle::*getter)() const, void (RenderStyle::*setter)(T), bool (RenderStyle::*autoGetter)() const, void (RenderStyle::*autoSetter)(), Optional<T> minValue = WTF::nullopt)
+        : PropertyWrapper<T>(prop, getter, setter)
+        , m_autoGetter(autoGetter)
+        , m_autoSetter(autoSetter)
+        , m_minValue(minValue)
     {
     }
 
     bool canInterpolate(const RenderStyle* from, const RenderStyle* to) const override
     {
-        return !from->hasAutoSpecifiedZIndex() && !to->hasAutoSpecifiedZIndex();
+        return !(from->*m_autoGetter)() && !(to->*m_autoGetter)();
     }
 
     void blend(const CSSPropertyBlendingClient* anim, RenderStyle* dst, const RenderStyle* from, const RenderStyle* to, double progress) const override
     {
-        PropertyWrapper::blend(anim, dst, from, to, progress);
+        auto blendedValue = blendFunc(anim, this->value(from), this->value(to), progress);
+        if (this->m_minValue)
+            blendedValue = blendedValue > *this->m_minValue ? blendedValue : *this->m_minValue;
+        (dst->*this->m_setter)(blendedValue);
+
         if (canInterpolate(from, to))
             return;
 
         ASSERT(!progress || progress == 1.0);
         if (!progress) {
-            if (from->hasAutoSpecifiedZIndex())
-                dst->setHasAutoSpecifiedZIndex();
+            if ((from->*m_autoGetter)())
+                (dst->*m_autoSetter)();
         } else {
-            if (to->hasAutoSpecifiedZIndex())
-                dst->setHasAutoSpecifiedZIndex();
+            if ((to->*m_autoGetter)())
+                (dst->*m_autoSetter)();
         }
     }
+
+private:
+    bool (RenderStyle::*m_autoGetter)() const;
+    void (RenderStyle::*m_autoSetter)();
+    Optional<T> m_minValue;
 };
 
 class NonNegativeFloatPropertyWrapper : public PropertyWrapper<float> {
@@ -1856,11 +1869,11 @@
         new PropertyWrapper<unsigned short>(CSSPropertyColumnRuleWidth, &RenderStyle::columnRuleWidth, &RenderStyle::setColumnRuleWidth),
         new LengthVariantPropertyWrapper<GapLength>(CSSPropertyColumnGap, &RenderStyle::columnGap, &RenderStyle::setColumnGap),
         new LengthVariantPropertyWrapper<GapLength>(CSSPropertyRowGap, &RenderStyle::rowGap, &RenderStyle::setRowGap),
-        new PropertyWrapper<unsigned short>(CSSPropertyColumnCount, &RenderStyle::columnCount, &RenderStyle::setColumnCount),
-        new NonNegativeFloatPropertyWrapper(CSSPropertyColumnWidth, &RenderStyle::columnWidth, &RenderStyle::setColumnWidth),
+        new AutoPropertyWrapper<unsigned short>(CSSPropertyColumnCount, &RenderStyle::columnCount, &RenderStyle::setColumnCount, &RenderStyle::hasAutoColumnCount, &RenderStyle::setHasAutoColumnCount, 1),
+        new AutoPropertyWrapper<float>(CSSPropertyColumnWidth, &RenderStyle::columnWidth, &RenderStyle::setColumnWidth, &RenderStyle::hasAutoColumnWidth, &RenderStyle::setHasAutoColumnWidth, 0),
         new PropertyWrapper<float>(CSSPropertyWebkitBorderHorizontalSpacing, &RenderStyle::horizontalBorderSpacing, &RenderStyle::setHorizontalBorderSpacing),
         new PropertyWrapper<float>(CSSPropertyWebkitBorderVerticalSpacing, &RenderStyle::verticalBorderSpacing, &RenderStyle::setVerticalBorderSpacing),
-        new ZIndexPropertyWrapper,
+        new AutoPropertyWrapper<int>(CSSPropertyZIndex, &RenderStyle::specifiedZIndex, &RenderStyle::setSpecifiedZIndex, &RenderStyle::hasAutoSpecifiedZIndex, &RenderStyle::setHasAutoSpecifiedZIndex),
         new PropertyWrapper<unsigned short>(CSSPropertyOrphans, &RenderStyle::orphans, &RenderStyle::setOrphans),
         new PropertyWrapper<unsigned short>(CSSPropertyWidows, &RenderStyle::widows, &RenderStyle::setWidows),
         new LengthPropertyWrapper(CSSPropertyLineHeight, &RenderStyle::specifiedLineHeight, &RenderStyle::setLineHeight),
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to