Changeset 274147 in webkit


Ignore:
Timestamp:
Mar 9, 2021 7:51:48 AM (17 months ago)
Author:
graouts@webkit.org
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.

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r274142 r274147  
     12021-03-09  Antoine Quint  <graouts@webkit.org>
     2
     3        Correctly blend column-width and column-count CSS properties
     4        https://bugs.webkit.org/show_bug.cgi?id=222969
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Add an extra 160 PASS results. We now pass all the column-width and column-count interpolation tests.
     9
     10        * web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt:
     11        * web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
     12        * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
     13        * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
     14        * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
     15
    1162021-03-08  Antoine Quint  <graouts@webkit.org>
    217
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt

    r272904 r274147  
    2424PASS Web Animations: property <column-count> from neutral to [20] at (1) should be [20]
    2525PASS Web Animations: property <column-count> from neutral to [20] at (1.5) should be [25]
    26 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (-0.3) should be [20] assert_equals: expected "20 " but got "65530 "
    27 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0) should be [20] assert_equals: expected "20 " but got "0 "
    28 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.3) should be [20] assert_equals: expected "20 " but got "6 "
    29 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
    30 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
     26PASS CSS Transitions: property <column-count> from [auto] to [20] at (-0.3) should be [20]
     27PASS CSS Transitions: property <column-count> from [auto] to [20] at (0) should be [20]
     28PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.3) should be [20]
     29PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.5) should be [20]
     30PASS CSS Transitions: property <column-count> from [auto] to [20] at (0.6) should be [20]
    3131PASS CSS Transitions: property <column-count> from [auto] to [20] at (1) should be [20]
    32 FAIL CSS Transitions: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
    33 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 "
    34 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 "
    35 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 "
    36 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 "
    37 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 "
     32PASS CSS Transitions: property <column-count> from [auto] to [20] at (1.5) should be [20]
     33PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (-0.3) should be [20]
     34PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0) should be [20]
     35PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.3) should be [20]
     36PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.5) should be [20]
     37PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (0.6) should be [20]
    3838PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (1) should be [20]
    39 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 "
    40 FAIL CSS Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65530 "
    41 FAIL CSS Animations: property <column-count> from [auto] to [20] at (0) should be [auto] assert_equals: expected "auto " but got "0 "
    42 FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto] assert_equals: expected "auto " but got "6 "
    43 FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
    44 FAIL CSS Animations: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
     39PASS CSS Transitions with transition: all: property <column-count> from [auto] to [20] at (1.5) should be [20]
     40PASS CSS Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto]
     41PASS CSS Animations: property <column-count> from [auto] to [20] at (0) should be [auto]
     42PASS CSS Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto]
     43PASS CSS Animations: property <column-count> from [auto] to [20] at (0.5) should be [20]
     44PASS CSS Animations: property <column-count> from [auto] to [20] at (0.6) should be [20]
    4545PASS CSS Animations: property <column-count> from [auto] to [20] at (1) should be [20]
    46 FAIL CSS Animations: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
    47 FAIL Web Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65530 "
    48 FAIL Web Animations: property <column-count> from [auto] to [20] at (0) should be [auto] assert_equals: expected "auto " but got "0 "
    49 FAIL Web Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto] assert_equals: expected "auto " but got "6 "
    50 FAIL Web Animations: property <column-count> from [auto] to [20] at (0.5) should be [20] assert_equals: expected "20 " but got "10 "
    51 FAIL Web Animations: property <column-count> from [auto] to [20] at (0.6) should be [20] assert_equals: expected "20 " but got "12 "
     46PASS CSS Animations: property <column-count> from [auto] to [20] at (1.5) should be [20]
     47PASS Web Animations: property <column-count> from [auto] to [20] at (-0.3) should be [auto]
     48PASS Web Animations: property <column-count> from [auto] to [20] at (0) should be [auto]
     49PASS Web Animations: property <column-count> from [auto] to [20] at (0.3) should be [auto]
     50PASS Web Animations: property <column-count> from [auto] to [20] at (0.5) should be [20]
     51PASS Web Animations: property <column-count> from [auto] to [20] at (0.6) should be [20]
    5252PASS Web Animations: property <column-count> from [auto] to [20] at (1) should be [20]
    53 FAIL Web Animations: property <column-count> from [auto] to [20] at (1.5) should be [20] assert_equals: expected "20 " but got "30 "
     53PASS Web Animations: property <column-count> from [auto] to [20] at (1.5) should be [20]
    5454PASS CSS Transitions: property <column-count> from [inherit] to [20] at (-0.5) should be [35]
    5555PASS CSS Transitions: property <column-count> from [inherit] to [20] at (0) should be [30]
     
    8181PASS CSS Transitions: property <column-count> from [10] to [1] at (0.7) should be [4]
    8282PASS CSS Transitions: property <column-count> from [10] to [1] at (1) should be [1]
    83 FAIL CSS Transitions: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
     83PASS CSS Transitions: property <column-count> from [10] to [1] at (1.5) should be [1]
    8484PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (-0.5) should be [15]
    8585PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (0) should be [10]
     
    8787PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (0.7) should be [4]
    8888PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (1) should be [1]
    89 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 "
     89PASS CSS Transitions with transition: all: property <column-count> from [10] to [1] at (1.5) should be [1]
    9090PASS CSS Animations: property <column-count> from [10] to [1] at (-0.5) should be [15]
    9191PASS CSS Animations: property <column-count> from [10] to [1] at (0) should be [10]
     
    9393PASS CSS Animations: property <column-count> from [10] to [1] at (0.7) should be [4]
    9494PASS CSS Animations: property <column-count> from [10] to [1] at (1) should be [1]
    95 FAIL CSS Animations: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
     95PASS CSS Animations: property <column-count> from [10] to [1] at (1.5) should be [1]
    9696PASS Web Animations: property <column-count> from [10] to [1] at (-0.5) should be [15]
    9797PASS Web Animations: property <column-count> from [10] to [1] at (0) should be [10]
     
    9999PASS Web Animations: property <column-count> from [10] to [1] at (0.7) should be [4]
    100100PASS Web Animations: property <column-count> from [10] to [1] at (1) should be [1]
    101 FAIL Web Animations: property <column-count> from [10] to [1] at (1.5) should be [1] assert_equals: expected "1 " but got "65532 "
    102 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
    103 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
    104 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
    105 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    106 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     101PASS Web Animations: property <column-count> from [10] to [1] at (1.5) should be [1]
     102PASS CSS Transitions: property <column-count> from [initial] to [5] at (-0.3) should be [5]
     103PASS CSS Transitions: property <column-count> from [initial] to [5] at (0) should be [5]
     104PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.3) should be [5]
     105PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.5) should be [5]
     106PASS CSS Transitions: property <column-count> from [initial] to [5] at (0.6) should be [5]
    107107PASS CSS Transitions: property <column-count> from [initial] to [5] at (1) should be [5]
    108 FAIL CSS Transitions: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
    109 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 "
    110 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 "
    111 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 "
    112 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 "
    113 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 "
     108PASS CSS Transitions: property <column-count> from [initial] to [5] at (1.5) should be [5]
     109PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (-0.3) should be [5]
     110PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0) should be [5]
     111PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.3) should be [5]
     112PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.5) should be [5]
     113PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (0.6) should be [5]
    114114PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (1) should be [5]
    115 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 "
    116 FAIL CSS Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial] assert_equals: expected "auto " but got "65535 "
    117 FAIL CSS Animations: property <column-count> from [initial] to [5] at (0) should be [initial] assert_equals: expected "auto " but got "0 "
    118 FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial] assert_equals: expected "auto " but got "2 "
    119 FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    120 FAIL CSS Animations: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     115PASS CSS Transitions with transition: all: property <column-count> from [initial] to [5] at (1.5) should be [5]
     116PASS CSS Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial]
     117PASS CSS Animations: property <column-count> from [initial] to [5] at (0) should be [initial]
     118PASS CSS Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial]
     119PASS CSS Animations: property <column-count> from [initial] to [5] at (0.5) should be [5]
     120PASS CSS Animations: property <column-count> from [initial] to [5] at (0.6) should be [5]
    121121PASS CSS Animations: property <column-count> from [initial] to [5] at (1) should be [5]
    122 FAIL CSS Animations: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
    123 FAIL Web Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial] assert_equals: expected "auto " but got "65535 "
    124 FAIL Web Animations: property <column-count> from [initial] to [5] at (0) should be [initial] assert_equals: expected "auto " but got "0 "
    125 FAIL Web Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial] assert_equals: expected "auto " but got "2 "
    126 FAIL Web Animations: property <column-count> from [initial] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    127 FAIL Web Animations: property <column-count> from [initial] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     122PASS CSS Animations: property <column-count> from [initial] to [5] at (1.5) should be [5]
     123PASS Web Animations: property <column-count> from [initial] to [5] at (-0.3) should be [initial]
     124PASS Web Animations: property <column-count> from [initial] to [5] at (0) should be [initial]
     125PASS Web Animations: property <column-count> from [initial] to [5] at (0.3) should be [initial]
     126PASS Web Animations: property <column-count> from [initial] to [5] at (0.5) should be [5]
     127PASS Web Animations: property <column-count> from [initial] to [5] at (0.6) should be [5]
    128128PASS Web Animations: property <column-count> from [initial] to [5] at (1) should be [5]
    129 FAIL Web Animations: property <column-count> from [initial] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
    130 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (-0.3) should be [5] assert_equals: expected "5 " but got "65535 "
    131 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0) should be [5] assert_equals: expected "5 " but got "0 "
    132 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.3) should be [5] assert_equals: expected "5 " but got "2 "
    133 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    134 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     129PASS Web Animations: property <column-count> from [initial] to [5] at (1.5) should be [5]
     130PASS CSS Transitions: property <column-count> from [unset] to [5] at (-0.3) should be [5]
     131PASS CSS Transitions: property <column-count> from [unset] to [5] at (0) should be [5]
     132PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.3) should be [5]
     133PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.5) should be [5]
     134PASS CSS Transitions: property <column-count> from [unset] to [5] at (0.6) should be [5]
    135135PASS CSS Transitions: property <column-count> from [unset] to [5] at (1) should be [5]
    136 FAIL CSS Transitions: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
    137 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 "
    138 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 "
    139 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 "
    140 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 "
    141 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 "
     136PASS CSS Transitions: property <column-count> from [unset] to [5] at (1.5) should be [5]
     137PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (-0.3) should be [5]
     138PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0) should be [5]
     139PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.3) should be [5]
     140PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.5) should be [5]
     141PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (0.6) should be [5]
    142142PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (1) should be [5]
    143 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 "
    144 FAIL CSS Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset] assert_equals: expected "auto " but got "65535 "
    145 FAIL CSS Animations: property <column-count> from [unset] to [5] at (0) should be [unset] assert_equals: expected "auto " but got "0 "
    146 FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset] assert_equals: expected "auto " but got "2 "
    147 FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    148 FAIL CSS Animations: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     143PASS CSS Transitions with transition: all: property <column-count> from [unset] to [5] at (1.5) should be [5]
     144PASS CSS Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset]
     145PASS CSS Animations: property <column-count> from [unset] to [5] at (0) should be [unset]
     146PASS CSS Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset]
     147PASS CSS Animations: property <column-count> from [unset] to [5] at (0.5) should be [5]
     148PASS CSS Animations: property <column-count> from [unset] to [5] at (0.6) should be [5]
    149149PASS CSS Animations: property <column-count> from [unset] to [5] at (1) should be [5]
    150 FAIL CSS Animations: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
    151 FAIL Web Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset] assert_equals: expected "auto " but got "65535 "
    152 FAIL Web Animations: property <column-count> from [unset] to [5] at (0) should be [unset] assert_equals: expected "auto " but got "0 "
    153 FAIL Web Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset] assert_equals: expected "auto " but got "2 "
    154 FAIL Web Animations: property <column-count> from [unset] to [5] at (0.5) should be [5] assert_equals: expected "5 " but got "3 "
    155 FAIL Web Animations: property <column-count> from [unset] to [5] at (0.6) should be [5] assert_equals: expected "5 " but got "3 "
     150PASS CSS Animations: property <column-count> from [unset] to [5] at (1.5) should be [5]
     151PASS Web Animations: property <column-count> from [unset] to [5] at (-0.3) should be [unset]
     152PASS Web Animations: property <column-count> from [unset] to [5] at (0) should be [unset]
     153PASS Web Animations: property <column-count> from [unset] to [5] at (0.3) should be [unset]
     154PASS Web Animations: property <column-count> from [unset] to [5] at (0.5) should be [5]
     155PASS Web Animations: property <column-count> from [unset] to [5] at (0.6) should be [5]
    156156PASS Web Animations: property <column-count> from [unset] to [5] at (1) should be [5]
    157 FAIL Web Animations: property <column-count> from [unset] to [5] at (1.5) should be [5] assert_equals: expected "5 " but got "8 "
     157PASS Web Animations: property <column-count> from [unset] to [5] at (1.5) should be [5]
    158158
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt

    r274142 r274147  
    3232PASS Web Animations: property <column-width> from neutral to [20px] at (1) should be [20px]
    3333PASS Web Animations: property <column-width> from neutral to [20px] at (1.5) should be [25px]
    34 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
    35 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
    36 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
    37 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    38 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     34PASS CSS Transitions: property <column-width> from [initial] to [20px] at (-0.3) should be [20px]
     35PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0) should be [20px]
     36PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.3) should be [20px]
     37PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
     38PASS CSS Transitions: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
    3939PASS CSS Transitions: property <column-width> from [initial] to [20px] at (1) should be [20px]
    40 FAIL CSS Transitions: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
    41 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 "
    42 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 "
    43 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 "
    44 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 "
    45 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 "
     40PASS CSS Transitions: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
     41PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (-0.3) should be [20px]
     42PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0) should be [20px]
     43PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.3) should be [20px]
     44PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
     45PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
    4646PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (1) should be [20px]
    47 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 "
    48 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial] assert_equals: expected "auto " but got "0px "
    49 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0) should be [initial] assert_equals: expected "auto " but got "0px "
    50 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial] assert_equals: expected "auto " but got "6px "
    51 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    52 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     47PASS CSS Transitions with transition: all: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
     48PASS CSS Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial]
     49PASS CSS Animations: property <column-width> from [initial] to [20px] at (0) should be [initial]
     50PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial]
     51PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
     52PASS CSS Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
    5353PASS CSS Animations: property <column-width> from [initial] to [20px] at (1) should be [20px]
    54 FAIL CSS Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
    55 FAIL Web Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial] assert_equals: expected "auto " but got "0px "
    56 FAIL Web Animations: property <column-width> from [initial] to [20px] at (0) should be [initial] assert_equals: expected "auto " but got "0px "
    57 FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial] assert_equals: expected "auto " but got "6px "
    58 FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    59 FAIL Web Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     54PASS CSS Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
     55PASS Web Animations: property <column-width> from [initial] to [20px] at (-0.3) should be [initial]
     56PASS Web Animations: property <column-width> from [initial] to [20px] at (0) should be [initial]
     57PASS Web Animations: property <column-width> from [initial] to [20px] at (0.3) should be [initial]
     58PASS Web Animations: property <column-width> from [initial] to [20px] at (0.5) should be [20px]
     59PASS Web Animations: property <column-width> from [initial] to [20px] at (0.6) should be [20px]
    6060PASS Web Animations: property <column-width> from [initial] to [20px] at (1) should be [20px]
    61 FAIL Web Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
     61PASS Web Animations: property <column-width> from [initial] to [20px] at (1.5) should be [20px]
    6262PASS CSS Transitions: property <column-width> from [inherit] to [20px] at (-20) should be [230px]
    6363PASS CSS Transitions: property <column-width> from [inherit] to [20px] at (-1) should be [40px]
     
    9292PASS Web Animations: property <column-width> from [inherit] to [20px] at (1) should be [20px]
    9393PASS Web Animations: property <column-width> from [inherit] to [20px] at (1.5) should be [15px]
    94 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (-0.3) should be [20px] assert_equals: expected "20px " but got "0px "
    95 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0) should be [20px] assert_equals: expected "20px " but got "0px "
    96 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.3) should be [20px] assert_equals: expected "20px " but got "6px "
    97 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    98 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     94PASS CSS Transitions: property <column-width> from [unset] to [20px] at (-0.3) should be [20px]
     95PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0) should be [20px]
     96PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.3) should be [20px]
     97PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
     98PASS CSS Transitions: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
    9999PASS CSS Transitions: property <column-width> from [unset] to [20px] at (1) should be [20px]
    100 FAIL CSS Transitions: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
    101 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 "
    102 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 "
    103 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 "
    104 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 "
    105 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 "
     100PASS CSS Transitions: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
     101PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (-0.3) should be [20px]
     102PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0) should be [20px]
     103PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.3) should be [20px]
     104PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
     105PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
    106106PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (1) should be [20px]
    107 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 "
    108 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset] assert_equals: expected "auto " but got "0px "
    109 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0) should be [unset] assert_equals: expected "auto " but got "0px "
    110 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset] assert_equals: expected "auto " but got "6px "
    111 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    112 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     107PASS CSS Transitions with transition: all: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
     108PASS CSS Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset]
     109PASS CSS Animations: property <column-width> from [unset] to [20px] at (0) should be [unset]
     110PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset]
     111PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
     112PASS CSS Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
    113113PASS CSS Animations: property <column-width> from [unset] to [20px] at (1) should be [20px]
    114 FAIL CSS Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
    115 FAIL Web Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset] assert_equals: expected "auto " but got "0px "
    116 FAIL Web Animations: property <column-width> from [unset] to [20px] at (0) should be [unset] assert_equals: expected "auto " but got "0px "
    117 FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset] assert_equals: expected "auto " but got "6px "
    118 FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px] assert_equals: expected "20px " but got "10px "
    119 FAIL Web Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px] assert_equals: expected "20px " but got "12px "
     114PASS CSS Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
     115PASS Web Animations: property <column-width> from [unset] to [20px] at (-0.3) should be [unset]
     116PASS Web Animations: property <column-width> from [unset] to [20px] at (0) should be [unset]
     117PASS Web Animations: property <column-width> from [unset] to [20px] at (0.3) should be [unset]
     118PASS Web Animations: property <column-width> from [unset] to [20px] at (0.5) should be [20px]
     119PASS Web Animations: property <column-width> from [unset] to [20px] at (0.6) should be [20px]
    120120PASS Web Animations: property <column-width> from [unset] to [20px] at (1) should be [20px]
    121 FAIL Web Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px] assert_equals: expected "20px " but got "30px "
     121PASS Web Animations: property <column-width> from [unset] to [20px] at (1.5) should be [20px]
    122122PASS CSS Transitions: property <column-width> from [50px] to [100px] at (-20) should be [1em]
    123123PASS CSS Transitions: property <column-width> from [50px] to [100px] at (-1) should be [1em]
     
    152152PASS Web Animations: property <column-width> from [50px] to [100px] at (1) should be [100px]
    153153PASS Web Animations: property <column-width> from [50px] to [100px] at (1.5) should be [125px]
    154 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (-0.3) should be [auto] assert_equals: expected "auto " but got "65px "
    155 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0) should be [auto] assert_equals: expected "auto " but got "50px "
    156 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.3) should be [auto] assert_equals: expected "auto " but got "35px "
    157 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
    158 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
    159 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
    160 FAIL CSS Transitions: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
    161 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 "
    162 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 "
    163 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 "
    164 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 "
    165 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 "
    166 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 "
    167 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 "
    168 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px] assert_equals: expected "50px " but got "65px "
     154PASS CSS Transitions: property <column-width> from [50px] to [auto] at (-0.3) should be [auto]
     155PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0) should be [auto]
     156PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.3) should be [auto]
     157PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
     158PASS CSS Transitions: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
     159PASS CSS Transitions: property <column-width> from [50px] to [auto] at (1) should be [auto]
     160PASS CSS Transitions: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
     161PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (-0.3) should be [auto]
     162PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0) should be [auto]
     163PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.3) should be [auto]
     164PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
     165PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
     166PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1) should be [auto]
     167PASS CSS Transitions with transition: all: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
     168PASS CSS Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px]
    169169PASS CSS Animations: property <column-width> from [50px] to [auto] at (0) should be [50px]
    170 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px] assert_equals: expected "50px " but got "35px "
    171 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
    172 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
    173 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
    174 FAIL CSS Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
    175 FAIL Web Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px] assert_equals: expected "50px " but got "65px "
     170PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px]
     171PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
     172PASS CSS Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
     173PASS CSS Animations: property <column-width> from [50px] to [auto] at (1) should be [auto]
     174PASS CSS Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
     175PASS Web Animations: property <column-width> from [50px] to [auto] at (-0.3) should be [50px]
    176176PASS Web Animations: property <column-width> from [50px] to [auto] at (0) should be [50px]
    177 FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px] assert_equals: expected "50px " but got "35px "
    178 FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto] assert_equals: expected "auto " but got "25px "
    179 FAIL Web Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto] assert_equals: expected "auto " but got "20px "
    180 FAIL Web Animations: property <column-width> from [50px] to [auto] at (1) should be [auto] assert_equals: expected "auto " but got "0px "
    181 FAIL Web Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto] assert_equals: expected "auto " but got "0px "
     177PASS Web Animations: property <column-width> from [50px] to [auto] at (0.3) should be [50px]
     178PASS Web Animations: property <column-width> from [50px] to [auto] at (0.5) should be [auto]
     179PASS Web Animations: property <column-width> from [50px] to [auto] at (0.6) should be [auto]
     180PASS Web Animations: property <column-width> from [50px] to [auto] at (1) should be [auto]
     181PASS Web Animations: property <column-width> from [50px] to [auto] at (1.5) should be [auto]
    182182
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt

    r269812 r274147  
    117117PASS column-count (type: discrete) has testAccumulation function
    118118PASS column-count: "10" onto "auto"
    119 FAIL column-count: "auto" onto "10" assert_equals: The value should be auto at 0ms expected "auto" but got "0"
     119PASS column-count: "auto" onto "10"
    120120PASS column-gap (type: length) has testAccumulation function
    121121FAIL column-gap: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
     
    145145PASS column-width (type: discrete) has testAccumulation function
    146146PASS column-width: "1px" onto "auto"
    147 FAIL column-width: "auto" onto "1px" assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
     147PASS column-width: "auto" onto "1px"
    148148PASS cursor (type: discrete) has testAccumulation function
    149149PASS cursor: "wait" onto "pointer"
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt

    r269812 r274147  
    117117PASS column-count (type: discrete) has testAddition function
    118118PASS column-count: "10" onto "auto"
    119 FAIL column-count: "auto" onto "10" assert_equals: The value should be auto at 0ms expected "auto" but got "0"
     119PASS column-count: "auto" onto "10"
    120120PASS column-gap (type: length) has testAddition function
    121121FAIL column-gap: length assert_equals: The value should be 20px at 0ms expected "20px" but got "10px"
     
    145145PASS column-width (type: discrete) has testAddition function
    146146PASS column-width: "1px" onto "auto"
    147 FAIL column-width: "auto" onto "1px" assert_equals: The value should be auto at 0ms expected "auto" but got "0px"
     147PASS column-width: "auto" onto "1px"
    148148PASS cursor (type: discrete) has testAddition function
    149149PASS cursor: "wait" onto "pointer"
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt

    r274038 r274147  
    137137PASS column-count supports animating as a positive integer
    138138PASS column-count (type: discrete) has testInterpolation function
    139 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"
    140 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"
    141 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"
     139PASS column-count uses discrete animation when animating between "auto" and "10" with linear easing
     140PASS column-count uses discrete animation when animating between "auto" and "10" with effect easing
     141PASS column-count uses discrete animation when animating between "auto" and "10" with keyframe easing
    142142PASS column-gap (type: length) has testInterpolation function
    143143PASS column-gap supports animating as a length
     
    169169PASS column-width supports animating as a length of rem
    170170PASS column-width (type: discrete) has testInterpolation function
    171 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"
    172 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"
    173 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"
     171PASS column-width uses discrete animation when animating between "auto" and "1px" with linear easing
     172PASS column-width uses discrete animation when animating between "auto" and "1px" with effect easing
     173PASS column-width uses discrete animation when animating between "auto" and "1px" with keyframe easing
    174174PASS cursor (type: discrete) has testInterpolation function
    175175PASS cursor uses discrete animation when animating between "pointer" and "wait" with linear easing
  • trunk/Source/WebCore/ChangeLog

    r274146 r274147  
     12021-03-09  Antoine Quint  <graouts@webkit.org>
     2
     3        Correctly blend column-width and column-count CSS properties
     4        https://bugs.webkit.org/show_bug.cgi?id=222969
     5
     6        Reviewed by Antti Koivisto.
     7
     8        We used to simply blend column-width and column-count as float and unsigned short properties
     9        with no minimum value and no accounting for the "auto" value which only blends discretely.
     10
     11        We generalize some of the code added for the z-index wrapper by creating a new AutoPropertyWrapper
     12        which takes into two method arguments for the hasAuto() and setHasAuto() methods on RenderStyle
     13        and an optional minimum value, which we set to 0 for column-width, 1 for column-count and don't
     14        specify for z-index since it doesn't have a minimum value.
     15
     16        * animation/CSSPropertyAnimation.cpp:
     17        (WebCore::AutoPropertyWrapper::AutoPropertyWrapper):
     18        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
     19        (WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper): Deleted.
     20
    1212021-03-09  Carlos Garcia Campos  <cgarcia@igalia.com>
    222
  • trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp

    r274142 r274147  
    16991699};
    17001700
    1701 class ZIndexPropertyWrapper : public PropertyWrapper<int> {
    1702     WTF_MAKE_FAST_ALLOCATED;
    1703 public:
    1704     ZIndexPropertyWrapper()
    1705         : PropertyWrapper<int>(CSSPropertyZIndex, &RenderStyle::specifiedZIndex, &RenderStyle::setSpecifiedZIndex)
     1701template <typename T>
     1702class AutoPropertyWrapper : public PropertyWrapper<T> {
     1703    WTF_MAKE_FAST_ALLOCATED;
     1704public:
     1705    AutoPropertyWrapper(CSSPropertyID prop, T (RenderStyle::*getter)() const, void (RenderStyle::*setter)(T), bool (RenderStyle::*autoGetter)() const, void (RenderStyle::*autoSetter)(), Optional<T> minValue = WTF::nullopt)
     1706        : PropertyWrapper<T>(prop, getter, setter)
     1707        , m_autoGetter(autoGetter)
     1708        , m_autoSetter(autoSetter)
     1709        , m_minValue(minValue)
    17061710    {
    17071711    }
     
    17091713    bool canInterpolate(const RenderStyle* from, const RenderStyle* to) const override
    17101714    {
    1711         return !from->hasAutoSpecifiedZIndex() && !to->hasAutoSpecifiedZIndex();
     1715        return !(from->*m_autoGetter)() && !(to->*m_autoGetter)();
    17121716    }
    17131717
    17141718    void blend(const CSSPropertyBlendingClient* anim, RenderStyle* dst, const RenderStyle* from, const RenderStyle* to, double progress) const override
    17151719    {
    1716         PropertyWrapper::blend(anim, dst, from, to, progress);
     1720        auto blendedValue = blendFunc(anim, this->value(from), this->value(to), progress);
     1721        if (this->m_minValue)
     1722            blendedValue = blendedValue > *this->m_minValue ? blendedValue : *this->m_minValue;
     1723        (dst->*this->m_setter)(blendedValue);
     1724
    17171725        if (canInterpolate(from, to))
    17181726            return;
     
    17201728        ASSERT(!progress || progress == 1.0);
    17211729        if (!progress) {
    1722             if (from->hasAutoSpecifiedZIndex())
    1723                 dst->setHasAutoSpecifiedZIndex();
     1730            if ((from->*m_autoGetter)())
     1731                (dst->*m_autoSetter)();
    17241732        } else {
    1725             if (to->hasAutoSpecifiedZIndex())
    1726                 dst->setHasAutoSpecifiedZIndex();
     1733            if ((to->*m_autoGetter)())
     1734                (dst->*m_autoSetter)();
    17271735        }
    17281736    }
     1737
     1738private:
     1739    bool (RenderStyle::*m_autoGetter)() const;
     1740    void (RenderStyle::*m_autoSetter)();
     1741    Optional<T> m_minValue;
    17291742};
    17301743
     
    18571870        new LengthVariantPropertyWrapper<GapLength>(CSSPropertyColumnGap, &RenderStyle::columnGap, &RenderStyle::setColumnGap),
    18581871        new LengthVariantPropertyWrapper<GapLength>(CSSPropertyRowGap, &RenderStyle::rowGap, &RenderStyle::setRowGap),
    1859         new PropertyWrapper<unsigned short>(CSSPropertyColumnCount, &RenderStyle::columnCount, &RenderStyle::setColumnCount),
    1860         new NonNegativeFloatPropertyWrapper(CSSPropertyColumnWidth, &RenderStyle::columnWidth, &RenderStyle::setColumnWidth),
     1872        new AutoPropertyWrapper<unsigned short>(CSSPropertyColumnCount, &RenderStyle::columnCount, &RenderStyle::setColumnCount, &RenderStyle::hasAutoColumnCount, &RenderStyle::setHasAutoColumnCount, 1),
     1873        new AutoPropertyWrapper<float>(CSSPropertyColumnWidth, &RenderStyle::columnWidth, &RenderStyle::setColumnWidth, &RenderStyle::hasAutoColumnWidth, &RenderStyle::setHasAutoColumnWidth, 0),
    18611874        new PropertyWrapper<float>(CSSPropertyWebkitBorderHorizontalSpacing, &RenderStyle::horizontalBorderSpacing, &RenderStyle::setHorizontalBorderSpacing),
    18621875        new PropertyWrapper<float>(CSSPropertyWebkitBorderVerticalSpacing, &RenderStyle::verticalBorderSpacing, &RenderStyle::setVerticalBorderSpacing),
    1863         new ZIndexPropertyWrapper,
     1876        new AutoPropertyWrapper<int>(CSSPropertyZIndex, &RenderStyle::specifiedZIndex, &RenderStyle::setSpecifiedZIndex, &RenderStyle::hasAutoSpecifiedZIndex, &RenderStyle::setHasAutoSpecifiedZIndex),
    18641877        new PropertyWrapper<unsigned short>(CSSPropertyOrphans, &RenderStyle::orphans, &RenderStyle::setOrphans),
    18651878        new PropertyWrapper<unsigned short>(CSSPropertyWidows, &RenderStyle::widows, &RenderStyle::setWidows),
Note: See TracChangeset for help on using the changeset viewer.