Title: [275272] trunk
Revision
275272
Author
[email protected]
Date
2021-03-31 00:44:12 -0700 (Wed, 31 Mar 2021)

Log Message

Fix interpolation of box-shadow and text-shadow CSS properties
https://bugs.webkit.org/show_bug.cgi?id=223924

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark all interpolation tests for box-shadow and text-shadow as PASS results.

* web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
* web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
* web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
* web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:

Source/WebCore:

There were three issues with interpolation of ShadowData-backed properties such
as box-shadow and text-shadow:

1. the blur radius should not be allowed to be negative,
2. blending LayoutUnit had accuracy issues,
3. we would allow interpolation to happen when items in lists did not have
   matching shadow styles ("inset" vs. unspecified).

* animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* platform/animation/AnimationUtilities.h:
(WebCore::blend):

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (275271 => 275272)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-31 07:44:12 UTC (rev 275272)
@@ -1,5 +1,19 @@
 2021-03-30  Antoine Quint  <[email protected]>
 
+        Fix interpolation of box-shadow and text-shadow CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=223924
+
+        Reviewed by Dean Jackson.
+
+        Mark all interpolation tests for box-shadow and text-shadow as PASS results.
+
+        * web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
+        * web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
+        * web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
+        * web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
+
+2021-03-30  Antoine Quint  <[email protected]>
+
         Computed style for background-position should not use "left" and "top" keywords
         https://bugs.webkit.org/show_bug.cgi?id=223878
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt (275271 => 275272)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt	2021-03-31 07:44:12 UTC (rev 275272)
@@ -38,5 +38,5 @@
 FAIL Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] to replace [rgb(200, 200, 200) 20px 40px 60px 80px] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px, rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] assert_equals: expected "rgb ( 10 , 20 , 30 ) 1px 2px 3px 4px , rgb ( 20 , 40 , 60 ) 2px 4px 6px 8px , rgb ( 40 , 80 , 120 ) 4px 8px 12px 16px , rgb ( 100 , 100 , 100 ) 10px 20px 30px 40px , rgb ( 200 , 200 , 200 ) 20px 40px 60px 80px " but got "rgb ( 100 , 100 , 100 ) 10px 20px 30px 40px , rgb ( 200 , 200 , 200 ) 20px 40px 60px 80px "
 FAIL Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] to replace [rgb(200, 200, 200) 20px 40px 60px 80px] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px 42px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(40, 80, 120, 0.5) 2px 4px 6px 8px, rgba(100, 100, 100, 0.5) 5px 10px 15px 20px, rgba(200, 200, 200, 0.5) 10px 20px 30px 40px] assert_equals: expected "rgb ( 105 , 110 , 115 ) 10.5px 21px 31px 42px , rgba ( 20 , 40 , 60 , 0.5 ) 1px 2px 3px 4px , rgba ( 40 , 80 , 120 , 0.5 ) 2px 4px 6px 8px , rgba ( 100 , 100 , 100 , 0.5 ) 5px 10px 15px 20px , rgba ( 200 , 200 , 200 , 0.5 ) 10px 20px 30px 40px " but got "rgb ( 150 , 150 , 150 ) 15px 30px 45px 60px , rgba ( 200 , 200 , 200 , 0.5 ) 10px 20px 30px 40px "
 FAIL Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] to replace [rgb(200, 200, 200) 20px 40px 60px 80px] at (1) should be [rgb(200, 200, 200) 20px 40px 60px 80px] assert_equals: expected "rgb ( 200 , 200 , 200 ) 20px 40px 60px 80px " but got "rgb ( 200 , 200 , 200 ) 20px 40px 60px 80px , rgba ( 0 , 0 , 0 , 0 ) 0px 0px 0px 0px "
-FAIL Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] to replace [rgb(200, 200, 200) 20px 40px 60px 80px] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -2px -4px 0px -8px, rgba(0, 0, 0, 0) -5px -10px 0px -20px, rgba(0, 0, 0, 0) -10px -20px 0px -40px] assert_equals: expected "rgb ( 255 , 255 , 255 ) 29.5px 59px 88px 118px , rgba ( 0 , 0 , 0 , 0 ) - 1px - 2px 0px - 4px , rgba ( 0 , 0 , 0 , 0 ) - 2px - 4px 0px - 8px , rgba ( 0 , 0 , 0 , 0 ) - 5px - 10px 0px - 20px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px - 40px " but got "rgb ( 250 , 250 , 250 ) 25px 50px 75px 100px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px - 30px - 40px "
+FAIL Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px] to replace [rgb(200, 200, 200) 20px 40px 60px 80px] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -2px -4px 0px -8px, rgba(0, 0, 0, 0) -5px -10px 0px -20px, rgba(0, 0, 0, 0) -10px -20px 0px -40px] assert_equals: expected "rgb ( 255 , 255 , 255 ) 29.5px 59px 88px 118px , rgba ( 0 , 0 , 0 , 0 ) - 1px - 2px 0px - 4px , rgba ( 0 , 0 , 0 , 0 ) - 2px - 4px 0px - 8px , rgba ( 0 , 0 , 0 , 0 ) - 5px - 10px 0px - 20px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px - 40px " but got "rgb ( 250 , 250 , 250 ) 25px 50px 75px 100px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px - 40px "
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt (275271 => 275272)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt	2021-03-31 07:44:12 UTC (rev 275272)
@@ -23,25 +23,25 @@
 PASS Web Animations: property <box-shadow> from neutral to [20px 20px 20px 20px black] at (0.6) should be [rgb(0, 0, 0) 16px 24px 16px 24px]
 PASS Web Animations: property <box-shadow> from neutral to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS Web Animations: property <box-shadow> from neutral to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 25px 15px 25px 15px]
-FAIL CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Transitions: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL Web Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS Web Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS Web Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS Web Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS Web Animations: property <box-shadow> from [initial] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
@@ -71,121 +71,121 @@
 PASS Web Animations: property <box-shadow> from [inherit] to [20px 20px 20px 20px black] at (0.6) should be [rgb(0, 0, 0) 24px 16px 24px 16px]
 PASS Web Animations: property <box-shadow> from [inherit] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS Web Animations: property <box-shadow> from [inherit] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 15px 25px 15px 25px]
-FAIL CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Transitions: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS CSS Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px - 6px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px - 5.98px "
+PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px -6px]
 PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px]
 PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.3) should be [rgba(0, 0, 0, 0.3) 6px 6px 6px 6px]
 PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (0.6) should be [rgba(0, 0, 0, 0.6) 12px 12px 12px 12px]
 PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1) should be [rgb(0, 0, 0) 20px 20px 20px 20px]
 PASS Web Animations: property <box-shadow> from [unset] to [20px 20px 20px 20px black] at (1.5) should be [rgb(0, 0, 0) 30px 30px 30px 30px]
-FAIL CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px orange] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Transitions: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS CSS Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px]
 PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px]
 PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px]
 PASS Web Animations: property <box-shadow> from [black 15px 10px 5px 6px] to [orange -15px -10px 25px -4px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px]
-FAIL CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px inset " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px inset "
+PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px inset]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px inset]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px inset]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px inset]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px inset]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px inset " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px inset "
+PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px inset]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px inset]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px inset]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px inset]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px inset]
-FAIL CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px inset " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px inset "
+PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px inset]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px inset]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px inset]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px inset]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px inset]
-FAIL Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px inset " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px inset "
+PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px inset]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px inset]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px 3px inset]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px 0px inset]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1) should be [rgb(255, 165, 0) -15px -10px 25px -4px inset]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px inset]
-FAIL CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px]
 PASS CSS Transitions: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px]
 PASS CSS Transitions with transition: all: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px]
-FAIL CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px]
 PASS CSS Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px]
-FAIL Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px 9px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px 9px "
+PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px]
 PASS Web Animations: property <box-shadow> from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px]
@@ -239,32 +239,32 @@
 PASS Web Animations: property <box-shadow> from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (0.6) should be [rgba(255, 255, 0, 0.2) 4px 8px 0px 0px, rgba(0, 128, 0, 0.4) 2px 12px 0px 0px inset]
 PASS Web Animations: property <box-shadow> from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (1) should be [rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px inset]
 PASS Web Animations: property <box-shadow> from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (1.5) should be [rgba(0, 0, 0, 0) -5px -10px 0px 0px, rgba(0, 0, 0, 0) -2.5px -15px 0px 0px inset]
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 166 , 0 ) 2px 7px 0px 0px "
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px "
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 90 , 77 ) 8px 13px 0px 0px "
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 64 , 128 ) 10px 15px 0px 0px "
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 51 , 153 ) 11px 16px 0px 0px "
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue]
 PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1) should be [inset 5px 10px green, 15px 20px blue]
-FAIL CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 20px 25px 0px 0px "
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 166 , 0 ) 2px 7px 0px 0px "
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px "
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 90 , 77 ) 8px 13px 0px 0px "
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 64 , 128 ) 10px 15px 0px 0px "
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 51 , 153 ) 11px 16px 0px 0px "
+PASS CSS Transitions: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue]
 PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1) should be [inset 5px 10px green, 15px 20px blue]
-FAIL CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 20px 25px 0px 0px "
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 166 , 0 ) 2px 7px 0px 0px "
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px "
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 90 , 77 ) 8px 13px 0px 0px "
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 64 , 128 ) 10px 15px 0px 0px "
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 51 , 153 ) 11px 16px 0px 0px "
+PASS CSS Transitions with transition: all: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [10px 20px yellow, 5px 10px green]
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [10px 20px yellow, 5px 10px green]
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [10px 20px yellow, 5px 10px green]
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue]
 PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1) should be [inset 5px 10px green, 15px 20px blue]
-FAIL CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 20px 25px 0px 0px "
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 166 , 0 ) 2px 7px 0px 0px "
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px "
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [10px 20px yellow, 5px 10px green] assert_equals: expected "rgb ( 255 , 255 , 0 ) 10px 20px 0px 0px , rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 90 , 77 ) 8px 13px 0px 0px "
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 64 , 128 ) 10px 15px 0px 0px "
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 51 , 153 ) 11px 16px 0px 0px "
+PASS CSS Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (-0.3) should be [10px 20px yellow, 5px 10px green]
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0) should be [10px 20px yellow, 5px 10px green]
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.3) should be [10px 20px yellow, 5px 10px green]
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.5) should be [inset 5px 10px green, 15px 20px blue]
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (0.6) should be [inset 5px 10px green, 15px 20px blue]
 PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1) should be [inset 5px 10px green, 15px 20px blue]
-FAIL Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue] assert_equals: expected "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 15px 20px 0px 0px " but got "rgb ( 0 , 128 , 0 ) 5px 10px 0px 0px inset , rgb ( 0 , 0 , 255 ) 20px 25px 0px 0px "
+PASS Web Animations: property <box-shadow> from [10px 20px yellow, 5px 10px green] to [inset 5px 10px green, 15px 20px blue] at (1.5) should be [inset 5px 10px green, 15px 20px blue]
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt (275271 => 275272)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt	2021-03-31 07:44:12 UTC (rev 275272)
@@ -28,5 +28,5 @@
 FAIL Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] to replace [rgb(200, 200, 200) 20px 40px 60px] at (0) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px, rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] assert_equals: expected "rgb ( 10 , 20 , 30 ) 1px 2px 3px , rgb ( 20 , 40 , 60 ) 2px 4px 6px , rgb ( 40 , 80 , 120 ) 4px 8px 12px , rgb ( 100 , 100 , 100 ) 10px 20px 30px , rgb ( 200 , 200 , 200 ) 20px 40px 60px " but got "rgb ( 100 , 100 , 100 ) 10px 20px 30px , rgb ( 200 , 200 , 200 ) 20px 40px 60px "
 FAIL Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] to replace [rgb(200, 200, 200) 20px 40px 60px] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(40, 80, 120, 0.5) 2px 4px 6px, rgba(100, 100, 100, 0.5) 5px 10px 15px, rgba(200, 200, 200, 0.5) 10px 20px 30px] assert_equals: expected "rgb ( 105 , 110 , 115 ) 10.5px 21px 31px , rgba ( 20 , 40 , 60 , 0.5 ) 1px 2px 3px , rgba ( 40 , 80 , 120 , 0.5 ) 2px 4px 6px , rgba ( 100 , 100 , 100 , 0.5 ) 5px 10px 15px , rgba ( 200 , 200 , 200 , 0.5 ) 10px 20px 30px " but got "rgb ( 150 , 150 , 150 ) 15px 30px 45px , rgba ( 200 , 200 , 200 , 0.5 ) 10px 20px 30px "
 FAIL Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] to replace [rgb(200, 200, 200) 20px 40px 60px] at (1) should be [rgb(200, 200, 200) 20px 40px 60px] assert_equals: expected "rgb ( 200 , 200 , 200 ) 20px 40px 60px " but got "rgb ( 200 , 200 , 200 ) 20px 40px 60px , rgba ( 0 , 0 , 0 , 0 ) 0px 0px 0px "
-FAIL Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] to replace [rgb(200, 200, 200) 20px 40px 60px] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -2px -4px 0px, rgba(0, 0, 0, 0) -5px -10px 0px, rgba(0, 0, 0, 0) -10px -20px 0px] assert_equals: expected "rgb ( 255 , 255 , 255 ) 29.5px 59px 88px , rgba ( 0 , 0 , 0 , 0 ) - 1px - 2px 0px , rgba ( 0 , 0 , 0 , 0 ) - 2px - 4px 0px , rgba ( 0 , 0 , 0 , 0 ) - 5px - 10px 0px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px " but got "rgb ( 250 , 250 , 250 ) 25px 50px 75px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px - 30px "
+FAIL Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px] to replace [rgb(200, 200, 200) 20px 40px 60px] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -2px -4px 0px, rgba(0, 0, 0, 0) -5px -10px 0px, rgba(0, 0, 0, 0) -10px -20px 0px] assert_equals: expected "rgb ( 255 , 255 , 255 ) 29.5px 59px 88px , rgba ( 0 , 0 , 0 , 0 ) - 1px - 2px 0px , rgba ( 0 , 0 , 0 , 0 ) - 2px - 4px 0px , rgba ( 0 , 0 , 0 , 0 ) - 5px - 10px 0px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px " but got "rgb ( 250 , 250 , 250 ) 25px 50px 75px , rgba ( 0 , 0 , 0 , 0 ) - 10px - 20px 0px "
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt (275271 => 275272)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt	2021-03-31 07:44:12 UTC (rev 275272)
@@ -23,25 +23,25 @@
 PASS Web Animations: property <text-shadow> from neutral to [green 20px 20px 20px] at (0.6) should be [rgb(102, 143, 0) 16px 24px 16px]
 PASS Web Animations: property <text-shadow> from neutral to [green 20px 20px 20px] at (1) should be [rgb(0, 128, 0) 20px 20px 20px]
 PASS Web Animations: property <text-shadow> from neutral to [green 20px 20px 20px] at (1.5) should be [rgb(0, 110, 0) 25px 15px 25px]
-FAIL CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px "
+PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px]
 PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px]
 PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.3) should be [rgba(0, 128, 0, 0.3) 6px 6px 6px]
 PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.6) should be [rgba(0, 128, 0, 0.6) 12px 12px 12px]
 PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1) should be [rgb(0, 128, 0) 20px 20px 20px]
 PASS CSS Transitions: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1.5) should be [rgb(0, 192, 0) 30px 30px 30px]
-FAIL CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px "
+PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.3) should be [rgba(0, 128, 0, 0.3) 6px 6px 6px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.6) should be [rgba(0, 128, 0, 0.6) 12px 12px 12px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1) should be [rgb(0, 128, 0) 20px 20px 20px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1.5) should be [rgb(0, 192, 0) 30px 30px 30px]
-FAIL CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px "
+PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px]
 PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px]
 PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.3) should be [rgba(0, 128, 0, 0.3) 6px 6px 6px]
 PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.6) should be [rgba(0, 128, 0, 0.6) 12px 12px 12px]
 PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1) should be [rgb(0, 128, 0) 20px 20px 20px]
 PASS CSS Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (1.5) should be [rgb(0, 192, 0) 30px 30px 30px]
-FAIL Web Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px] assert_equals: expected "rgba ( 0 , 0 , 0 , 0 ) - 6px - 6px 0px " but got "rgba ( 0 , 0 , 0 , 0 ) - 5.98px - 5.98px - 6px "
+PASS Web Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (-0.3) should be [rgba(0, 0, 0, 0) -6px -6px 0px]
 PASS Web Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0) should be [rgba(0, 0, 0, 0) 0px 0px 0px]
 PASS Web Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.3) should be [rgba(0, 128, 0, 0.3) 6px 6px 6px]
 PASS Web Animations: property <text-shadow> from [initial] to [green 20px 20px 20px] at (0.6) should be [rgba(0, 128, 0, 0.6) 12px 12px 12px]
@@ -95,25 +95,25 @@
 PASS Web Animations: property <text-shadow> from [unset] to [green 20px 20px 20px] at (0.6) should be [rgb(102, 143, 0) 24px 16px 24px]
 PASS Web Animations: property <text-shadow> from [unset] to [green 20px 20px 20px] at (1) should be [rgb(0, 128, 0) 20px 20px 20px]
 PASS Web Animations: property <text-shadow> from [unset] to [green 20px 20px 20px] at (1.5) should be [rgb(0, 110, 0) 15px 25px 15px]
-FAIL CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px "
+PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px]
 PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px]
 PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px]
 PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px]
 PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px]
 PASS CSS Transitions: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px]
-FAIL CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px "
+PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px]
 PASS CSS Transitions with transition: all: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px]
-FAIL CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px "
+PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px]
 PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px]
 PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px]
 PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px]
 PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1) should be [rgb(255, 165, 0) -15px -10px 25px]
 PASS CSS Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px]
-FAIL Web Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px] assert_equals: expected "rgb ( 0 , 0 , 0 ) 24px 16px 0px " but got "rgb ( 0 , 0 , 0 ) 24px 15.98px - 1px "
+PASS Web Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px]
 PASS Web Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px]
 PASS Web Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.3) should be [rgb(77, 50, 0) 6px 4px 11px]
 PASS Web Animations: property <text-shadow> from [black 15px 10px 5px] to [orange -15px -10px 25px] at (0.6) should be [rgb(153, 99, 0) -3px -2px 17px]

Modified: trunk/Source/WebCore/ChangeLog (275271 => 275272)


--- trunk/Source/WebCore/ChangeLog	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/Source/WebCore/ChangeLog	2021-03-31 07:44:12 UTC (rev 275272)
@@ -1,5 +1,25 @@
 2021-03-30  Antoine Quint  <[email protected]>
 
+        Fix interpolation of box-shadow and text-shadow CSS properties
+        https://bugs.webkit.org/show_bug.cgi?id=223924
+
+        Reviewed by Dean Jackson.
+
+        There were three issues with interpolation of ShadowData-backed properties such
+        as box-shadow and text-shadow:
+
+        1. the blur radius should not be allowed to be negative,
+        2. blending LayoutUnit had accuracy issues,
+        3. we would allow interpolation to happen when items in lists did not have
+           matching shadow styles ("inset" vs. unspecified).
+
+        * animation/CSSPropertyAnimation.cpp:
+        (WebCore::blendFunc):
+        * platform/animation/AnimationUtilities.h:
+        (WebCore::blend):
+
+2021-03-30  Antoine Quint  <[email protected]>
+
         Computed style for background-position should not use "left" and "top" keywords
         https://bugs.webkit.org/show_bug.cgi?id=223878
 

Modified: trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp (275271 => 275272)


--- trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-31 07:44:12 UTC (rev 275272)
@@ -133,11 +133,10 @@
 static inline std::unique_ptr<ShadowData> blendFunc(const CSSPropertyBlendingClient* client, const ShadowData* from, const ShadowData* to, double progress)
 {
     ASSERT(from && to);
-    if (from->style() != to->style())
-        return makeUnique<ShadowData>(*to);
+    ASSERT(from->style() == to->style());
 
     return makeUnique<ShadowData>(blend(from->location(), to->location(), progress),
-        blend(from->radius(), to->radius(), progress),
+        std::max(0, blend(from->radius(), to->radius(), progress)),
         blend(from->spread(), to->spread(), progress),
         blendFunc(client, from->style(), to->style(), progress),
         from->isWebkitBoxShadow(),
@@ -1114,11 +1113,34 @@
         return true;
     }
 
+    bool canInterpolate(const RenderStyle* from, const RenderStyle* to) const final
+    {
+        const ShadowData* fromShadow = (from->*m_getter)();
+        const ShadowData* toShadow = (to->*m_getter)();
+
+        // The only scenario where we can't interpolate is if specified items don't have the same shadow style.
+        while (fromShadow && toShadow) {
+            if (fromShadow->style() != toShadow->style())
+                return false;
+            fromShadow = fromShadow->next();
+            toShadow = toShadow->next();
+        }
+
+        return true;
+    }
+
     void blend(const CSSPropertyBlendingClient* client, RenderStyle* destination, const RenderStyle* from, const RenderStyle* to, double progress) const final
     {
         const ShadowData* fromShadow = (from->*m_getter)();
         const ShadowData* toShadow = (to->*m_getter)();
 
+        if (!canInterpolate(from, to)) {
+            ASSERT(!progress || progress == 1.0);
+            auto* shadow = progress ? toShadow : fromShadow;
+            (destination->*m_setter)(shadow ? makeUnique<ShadowData>(*shadow) : nullptr, false);
+            return;
+        }
+
         int fromLength = shadowListLength(fromShadow);
         int toLength = shadowListLength(toShadow);
 

Modified: trunk/Source/WebCore/platform/animation/AnimationUtilities.h (275271 => 275272)


--- trunk/Source/WebCore/platform/animation/AnimationUtilities.h	2021-03-31 07:21:37 UTC (rev 275271)
+++ trunk/Source/WebCore/platform/animation/AnimationUtilities.h	2021-03-31 07:44:12 UTC (rev 275272)
@@ -51,8 +51,8 @@
 }
 
 inline LayoutUnit blend(LayoutUnit from, LayoutUnit to, double progress)
-{  
-    return LayoutUnit(from + (to - from) * progress);
+{
+    return LayoutUnit(blend(from.toFloat(), to.toFloat(), progress));
 }
 
 inline IntPoint blend(const IntPoint& from, const IntPoint& to, double progress)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to