Log Message
Fix interpolation of the rotate CSS property https://bugs.webkit.org/show_bug.cgi?id=224730
Reviewed by Dean Jackson. LayoutTests/imported/w3c: Mark 123 WPT progressions. * web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt: * web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt: * web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: Source/WebCore: Implement the CSS Transforms spec about animating the rotateZ() function for the simplified case where only the angle is interpolated. * platform/graphics/transforms/RotateTransformOperation.cpp: (WebCore::RotateTransformOperation::blend):
Modified Paths
- trunk/LayoutTests/imported/w3c/ChangeLog
- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-18 18:12:23 UTC (rev 276231)
@@ -1,3 +1,19 @@
+2021-04-18 Antoine Quint <grao...@webkit.org>
+
+ Fix interpolation of the rotate CSS property
+ https://bugs.webkit.org/show_bug.cgi?id=224730
+
+ Reviewed by Dean Jackson.
+
+ Mark 123 WPT progressions.
+
+ * web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
+ * web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
+ * web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
+ * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
+ * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
+ * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
+
2021-04-18 Cathie Chen <cathiec...@igalia.com>
The implicit aspect-ratio from width and height attributes with float value is not accurate enough
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -35,34 +35,34 @@
FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [0 1 0 100deg] at (0.75) should be [-1.51909e-17 1 -4.55726e-17 75deg] assert_equals: expected "0 1 0 75deg " but got "- 0.11 0.93 - 0.34 71.18deg "
PASS Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [0 1 0 100deg] at (1) should be [0 1 0 100deg]
FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [0 1 0 100deg] at (2) should be [-3.3235e-17 -1 -9.97049e-17 160deg] assert_equals: expected "0 - 1 0 160deg " but got "- 0.22 - 0.73 - 0.65 120.66deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (-1) should be [-6.12323e-17 -1 1.57009e-16 90deg] assert_equals: expected "0 - 1 0 90deg " but got "0 1 0 270deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0) should be [-4.32978e-17 -0.707107 -0.707107 180deg] assert_equals: expected "0 - 0.71 - 0.71 180deg " but got "0 1 0 180deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0.25) should be [-1.48952e-16 -0.894427 -0.447214 131.81deg] assert_equals: expected "0 - 0.89 - 0.45 131.81deg " but got "0 1 0 157.5deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0.75) should be [-2.94392e-17 -0.707107 0.707107 70.5288deg] assert_equals: expected "0 - 0.71 0.71 70.53deg " but got "0 1 0 112.5deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (1) should be [90deg] assert_equals: expected "90deg " but got "0 1 0 90deg "
-FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (2) should be [-6.12323e-17 -1 -4.71028e-16 90deg] assert_equals: expected "0 - 1 0 90deg " but got "none "
-FAIL Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (-1) should be [0 1 0 -100deg] assert_equals: expected "0 1 0 - 100deg " but got "- 100deg "
+FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (-1) should be [-6.12323e-17 -1 1.57009e-16 90deg] assert_equals: expected "0 - 1 0 90deg " but got "y 90deg "
+FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0) should be [-4.32978e-17 -0.707107 -0.707107 180deg] assert_equals: expected "0 - 0.71 - 0.71 180deg " but got "0 - 1 0 180deg "
+FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0.25) should be [-1.48952e-16 -0.894427 -0.447214 131.81deg] assert_equals: expected "0 - 0.89 - 0.45 131.81deg " but got "0 0.96 0.28 148.6deg "
+FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (0.75) should be [-2.94392e-17 -0.707107 0.707107 70.5288deg] assert_equals: expected "0 - 0.71 0.71 70.53deg " but got "0 0.51 0.86 98.42deg "
+PASS Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (1) should be [90deg]
+FAIL Compositing: property <rotate> underlying [1 0 0 90deg] from add [0 1 0 180deg] to replace [0 0 1 90deg] at (2) should be [-6.12323e-17 -1 -4.71028e-16 90deg] assert_equals: expected "0 - 1 0 90deg " but got "0 - 1 0 180deg "
+PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (-1) should be [0 1 0 -100deg]
PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (0) should be [none]
-FAIL Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (0.25) should be [0 1 0 25deg] assert_equals: expected "0 1 0 25deg " but got "25deg "
-FAIL Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (0.75) should be [0 1 0 75deg] assert_equals: expected "0 1 0 75deg " but got "75deg "
-FAIL Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (1) should be [0 1 0 100deg] assert_equals: expected "0 1 0 100deg " but got "100deg "
-FAIL Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (2) should be [0 1 0 200deg] assert_equals: expected "0 1 0 200deg " but got "200deg "
-FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (-1) should be [2 4 6 540deg] assert_equals: expected "2 4 6 540deg " but got "none "
-FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0) should be [2 4 6 270deg] assert_equals: expected "2 4 6 270deg " but got "- 0.27 - 0.53 - 0.8 90deg "
-FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0.25) should be [2 4 6 202.5deg] assert_equals: expected "2 4 6 202.5deg " but got "- 0.25 - 0.58 - 0.77 79.33deg "
-FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0.75) should be [2 4 6 67.5deg] assert_equals: expected "2 4 6 67.5deg " but got "0.08 - 0.75 - 0.65 9.63deg "
+PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (0.25) should be [0 1 0 25deg]
+PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (0.75) should be [0 1 0 75deg]
+PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (1) should be [0 1 0 100deg]
+PASS Compositing: property <rotate> underlying [none] from add [none] to replace [0 1 0 100deg] at (2) should be [0 1 0 200deg]
+FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (-1) should be [2 4 6 540deg] assert_equals: expected "2 4 6 540deg " but got "0.27 0.53 0.8 540deg "
+FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0) should be [2 4 6 270deg] assert_equals: expected "2 4 6 270deg " but got "0.27 0.53 0.8 270deg "
+FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0.25) should be [2 4 6 202.5deg] assert_equals: expected "2 4 6 202.5deg " but got "0.27 0.53 0.8 202.5deg "
+FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (0.75) should be [2 4 6 67.5deg] assert_equals: expected "2 4 6 67.5deg " but got "0.27 0.53 0.8 67.5deg "
PASS Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (1) should be [none]
-FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (2) should be [2 4 6 -270deg] assert_equals: expected "2 4 6 - 270deg " but got "- 0.27 - 0.53 - 0.8 90deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (-1) should be [0.31 -0.22 0.92 131.66deg] assert_equals: expected "0.31 - 0.22 0.92 131.66deg " but got "- 100deg "
+FAIL Compositing: property <rotate> underlying [none] from add [2 4 6 270deg] to replace [none] at (2) should be [2 4 6 -270deg] assert_equals: expected "2 4 6 - 270deg " but got "0.27 0.53 0.8 - 270deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (-1) should be [0.31 -0.22 0.92 131.66deg] assert_equals: expected "0.31 - 0.22 0.92 131.66deg " but got "0 1 0 - 100deg "
FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (0) should be [1 2 3 90deg] assert_equals: expected "1 2 3 90deg " but got "none "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (0.25) should be [0.21 0.73 0.64 86.72deg] assert_equals: expected "0.21 0.73 0.64 86.72deg " but got "25deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (0.75) should be [0.07 0.97 0.21 92.05deg] assert_equals: expected "0.07 0.97 0.21 92.05deg " but got "75deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (1) should be [0 1 0 100deg] assert_equals: expected "0 1 0 100deg " but got "100deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (2) should be [-0.2 0.79 -0.59 151.11deg] assert_equals: expected "- 0.2 0.79 - 0.59 151.11deg " but got "200deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (-1) should be [1 2 3 720deg] assert_equals: expected "1 2 3 720deg " but got "none "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0) should be [1 2 3 360deg] assert_equals: expected "1 2 3 360deg " but got "- 0.27 - 0.53 - 0.8 90deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0.25) should be [1 2 3 270deg] assert_equals: expected "1 2 3 270deg " but got "- 0.25 - 0.58 - 0.77 79.33deg "
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0.75) should be [1 2 3 90deg] assert_equals: expected "1 2 3 90deg " but got "0.08 - 0.75 - 0.65 9.63deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (0.25) should be [0.21 0.73 0.64 86.72deg] assert_equals: expected "0.21 0.73 0.64 86.72deg " but got "0 1 0 25deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (0.75) should be [0.07 0.97 0.21 92.05deg] assert_equals: expected "0.07 0.97 0.21 92.05deg " but got "0 1 0 75deg "
+PASS Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (1) should be [0 1 0 100deg]
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [none] to replace [0 1 0 100deg] at (2) should be [-0.2 0.79 -0.59 151.11deg] assert_equals: expected "- 0.2 0.79 - 0.59 151.11deg " but got "0 1 0 200deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (-1) should be [1 2 3 720deg] assert_equals: expected "1 2 3 720deg " but got "0.27 0.53 0.8 540deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0) should be [1 2 3 360deg] assert_equals: expected "1 2 3 360deg " but got "0.27 0.53 0.8 270deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0.25) should be [1 2 3 270deg] assert_equals: expected "1 2 3 270deg " but got "0.27 0.53 0.8 202.5deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (0.75) should be [1 2 3 90deg] assert_equals: expected "1 2 3 90deg " but got "0.27 0.53 0.8 67.5deg "
PASS Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (1) should be [none]
-FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (2) should be [1 2 3 -360deg] assert_equals: expected "1 2 3 - 360deg " but got "- 0.27 - 0.53 - 0.8 90deg "
+FAIL Compositing: property <rotate> underlying [1 2 3 90deg] from add [2 4 6 270deg] to replace [none] at (2) should be [1 2 3 -360deg] assert_equals: expected "1 2 3 - 360deg " but got "0.27 0.53 0.8 - 270deg "
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -23,54 +23,54 @@
PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
PASS Web Animations: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
PASS Web Animations: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg] assert_equals: expected "0.45 - 0.45 0.77 104.48deg " but got "30deg "
+PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg] assert_equals: expected "- 0.14 0.14 0.98 40.6deg " but got "46.88deg "
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg] assert_equals: expected "- 0.7 0.7 0.11 53.2deg " but got "58.13deg "
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "60deg "
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "75deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg] assert_equals: expected "0.45 - 0.45 0.77 104.48deg " but got "30deg "
+PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
+PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
+PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg]
+FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "- 0.64 0.64 - 0.43 124.98deg "
+PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg] assert_equals: expected "- 0.14 0.14 0.98 40.6deg " but got "46.88deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg] assert_equals: expected "- 0.7 0.7 0.11 53.2deg " but got "58.13deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "60deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "75deg "
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg] assert_equals: expected "0.45 - 0.45 0.77 104.48deg " but got "30deg "
+PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
+PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
+PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg]
+FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "- 0.64 0.64 - 0.43 124.98deg "
+PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg] assert_equals: expected "- 0.14 0.14 0.98 40.6deg " but got "46.88deg "
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg] assert_equals: expected "- 0.7 0.7 0.11 53.2deg " but got "58.13deg "
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "60deg "
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "75deg "
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg] assert_equals: expected "0.45 - 0.45 0.77 104.48deg " but got "30deg "
+PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
+PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
+PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg]
+FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "- 0.64 0.64 - 0.43 124.98deg "
+PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg] assert_equals: expected "- 0.14 0.14 0.98 40.6deg " but got "46.88deg "
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg] assert_equals: expected "- 0.7 0.7 0.11 53.2deg " but got "58.13deg "
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "60deg "
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "75deg "
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad] assert_equals: expected "0.5 - 0.57 0.65 - 360deg " but got "- 360deg "
+PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
+PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
+PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg]
+FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg] assert_equals: expected "- 0.64 0.64 - 0.43 124.97deg " but got "- 0.64 0.64 - 0.43 124.98deg "
+PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg]
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad] assert_equals: expected "0.5 - 0.57 0.65 45deg " but got "45deg "
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad] assert_equals: expected "0.5 - 0.57 0.65 315deg " but got "315deg "
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "360deg "
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad] assert_equals: expected "0.5 - 0.57 0.65 720deg " but got "720deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad] assert_equals: expected "0.5 - 0.57 0.65 - 360deg " but got "- 360deg "
+PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
+PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
+PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad]
+PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
+PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad] assert_equals: expected "0.5 - 0.57 0.65 45deg " but got "45deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad] assert_equals: expected "0.5 - 0.57 0.65 315deg " but got "315deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "360deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad] assert_equals: expected "0.5 - 0.57 0.65 720deg " but got "720deg "
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad] assert_equals: expected "0.5 - 0.57 0.65 - 360deg " but got "- 360deg "
+PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
+PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
+PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad]
+PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
+PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg]
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad] assert_equals: expected "0.5 - 0.57 0.65 45deg " but got "45deg "
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad] assert_equals: expected "0.5 - 0.57 0.65 315deg " but got "315deg "
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "360deg "
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad] assert_equals: expected "0.5 - 0.57 0.65 720deg " but got "720deg "
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad] assert_equals: expected "0.5 - 0.57 0.65 - 360deg " but got "- 360deg "
+PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
+PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
+PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad]
+PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
+PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg]
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad] assert_equals: expected "0.5 - 0.57 0.65 45deg " but got "45deg "
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad] assert_equals: expected "0.5 - 0.57 0.65 315deg " but got "315deg "
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "360deg "
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad] assert_equals: expected "0.5 - 0.57 0.65 720deg " but got "720deg "
+PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
+PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
+PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad]
+PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
PASS CSS Transitions: property <rotate> from [none] to [none] at (-1) should be [none]
PASS CSS Transitions: property <rotate> from [none] to [none] at (0) should be [none]
PASS CSS Transitions: property <rotate> from [none] to [none] at (0.125) should be [none]
@@ -239,54 +239,54 @@
PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg] assert_equals: expected "0.22 - 0.55 0.8 300deg " but got "- 0.22 0.55 - 0.8 60deg "
+PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg] assert_equals: expected "0.22 - 0.55 0.8 50deg " but got "0.22 - 0.55 0.8 140deg "
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg] assert_equals: expected "0.22 - 0.55 0.8 - 50deg " but got "- 0.22 0.55 - 0.8 140deg "
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "- 0.22 0.55 - 0.8 100deg "
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg] assert_equals: expected "0.22 - 0.55 0.8 - 300deg " but got "0.22 - 0.55 0.8 60deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg] assert_equals: expected "0.22 - 0.55 0.8 300deg " but got "- 0.22 0.55 - 0.8 60deg "
+PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
+PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
+PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg]
+PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg] assert_equals: expected "0.22 - 0.55 0.8 50deg " but got "0.22 - 0.55 0.8 140deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg] assert_equals: expected "0.22 - 0.55 0.8 - 50deg " but got "- 0.22 0.55 - 0.8 140deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "- 0.22 0.55 - 0.8 100deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg] assert_equals: expected "0.22 - 0.55 0.8 - 300deg " but got "0.22 - 0.55 0.8 60deg "
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg] assert_equals: expected "0.22 - 0.55 0.8 300deg " but got "- 0.22 0.55 - 0.8 60deg "
+PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
+PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg]
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg] assert_equals: expected "0.22 - 0.55 0.8 50deg " but got "0.22 - 0.55 0.8 140deg "
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg] assert_equals: expected "0.22 - 0.55 0.8 - 50deg " but got "- 0.22 0.55 - 0.8 140deg "
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "- 0.22 0.55 - 0.8 100deg "
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg] assert_equals: expected "0.22 - 0.55 0.8 - 300deg " but got "0.22 - 0.55 0.8 60deg "
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg] assert_equals: expected "0.22 - 0.55 0.8 300deg " but got "- 0.22 0.55 - 0.8 60deg "
+PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
+PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
+PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg]
+PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
+PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg]
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg] assert_equals: expected "0.22 - 0.55 0.8 50deg " but got "0.22 - 0.55 0.8 140deg "
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg] assert_equals: expected "0.22 - 0.55 0.8 - 50deg " but got "- 0.22 0.55 - 0.8 140deg "
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "- 0.22 0.55 - 0.8 100deg "
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg] assert_equals: expected "0.22 - 0.55 0.8 - 300deg " but got "0.22 - 0.55 0.8 60deg "
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg] assert_equals: expected "0 1 0 - 10deg " but got "1 0 0 - 10deg "
+PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
+PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
+PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg]
+PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
+PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg]
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg] assert_equals: expected "0 1 0 2.5deg " but got "1 0 0 2.5deg "
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg] assert_equals: expected "0 1 0 7.5deg " but got "1 0 0 7.5deg "
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg] assert_equals: expected "0 1 0 10deg " but got "1 0 0 10deg "
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg] assert_equals: expected "0 1 0 20deg " but got "1 0 0 20deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg] assert_equals: expected "0 1 0 - 10deg " but got "1 0 0 - 10deg "
+PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
+PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
+PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
+PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg] assert_equals: expected "0 1 0 2.5deg " but got "1 0 0 2.5deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg] assert_equals: expected "0 1 0 7.5deg " but got "1 0 0 7.5deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg] assert_equals: expected "0 1 0 10deg " but got "1 0 0 10deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg] assert_equals: expected "0 1 0 20deg " but got "1 0 0 20deg "
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg] assert_equals: expected "0 1 0 - 10deg " but got "1 0 0 - 10deg "
+PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
+PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
+PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg]
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg] assert_equals: expected "0 1 0 2.5deg " but got "1 0 0 2.5deg "
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg] assert_equals: expected "0 1 0 7.5deg " but got "1 0 0 7.5deg "
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg] assert_equals: expected "0 1 0 10deg " but got "1 0 0 10deg "
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg] assert_equals: expected "0 1 0 20deg " but got "1 0 0 20deg "
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg] assert_equals: expected "0 1 0 - 10deg " but got "1 0 0 - 10deg "
+PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
+PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
+PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
+PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
+PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg]
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg] assert_equals: expected "0 1 0 2.5deg " but got "1 0 0 2.5deg "
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg] assert_equals: expected "0 1 0 7.5deg " but got "1 0 0 7.5deg "
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg] assert_equals: expected "0 1 0 10deg " but got "1 0 0 10deg "
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg] assert_equals: expected "0 1 0 20deg " but got "1 0 0 20deg "
+PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
+PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
+PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
+PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
FAIL CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg] assert_equals: expected "0.67 - 0.06 - 0.74 124.97deg " but got "0.67 - 0.06 - 0.74 124.98deg "
PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg]
PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
@@ -311,30 +311,30 @@
PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg]
FAIL Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg] assert_equals: expected "- 0.52 0.29 0.81 208.96deg " but got "0.52 - 0.29 - 0.81 151.04deg "
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg] assert_equals: expected "1 0 0 - 450deg " but got "0 1 0 - 450deg "
+PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg]
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg] assert_equals: expected "1 0 0 112.5deg " but got "0 1 0 112.5deg "
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg] assert_equals: expected "1 0 0 337.5deg " but got "0 1 0 337.5deg "
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg] assert_equals: expected "1 0 0 450deg " but got "0 1 0 450deg "
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg] assert_equals: expected "1 0 0 900deg " but got "0 1 0 900deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg] assert_equals: expected "1 0 0 - 450deg " but got "0 1 0 - 450deg "
+PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
+PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
+PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
+PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
+PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg] assert_equals: expected "1 0 0 112.5deg " but got "0 1 0 112.5deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg] assert_equals: expected "1 0 0 337.5deg " but got "0 1 0 337.5deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg] assert_equals: expected "1 0 0 450deg " but got "0 1 0 450deg "
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg] assert_equals: expected "1 0 0 900deg " but got "0 1 0 900deg "
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg] assert_equals: expected "1 0 0 - 450deg " but got "0 1 0 - 450deg "
+PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
+PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
+PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
+PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
+PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg]
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg] assert_equals: expected "1 0 0 112.5deg " but got "0 1 0 112.5deg "
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg] assert_equals: expected "1 0 0 337.5deg " but got "0 1 0 337.5deg "
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg] assert_equals: expected "1 0 0 450deg " but got "0 1 0 450deg "
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg] assert_equals: expected "1 0 0 900deg " but got "0 1 0 900deg "
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg] assert_equals: expected "1 0 0 - 450deg " but got "0 1 0 - 450deg "
+PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
+PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
+PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
+PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
+PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg]
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg] assert_equals: expected "1 0 0 112.5deg " but got "0 1 0 112.5deg "
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg] assert_equals: expected "1 0 0 337.5deg " but got "0 1 0 337.5deg "
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg] assert_equals: expected "1 0 0 450deg " but got "0 1 0 450deg "
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg] assert_equals: expected "1 0 0 900deg " but got "0 1 0 900deg "
+PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
+PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
+PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
+PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -239,30 +239,30 @@
PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 100deg)] to [rotate3d(7, 8, 9, 260deg)] at (0.75) should be [rotate3d(7, 8, 9, 220deg)]
PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 100deg)] to [rotate3d(7, 8, 9, 260deg)] at (1) should be [rotate3d(7, 8, 9, 260deg)]
PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 100deg)] to [rotate3d(7, 8, 9, 260deg)] at (2) should be [rotate3d(7, 8, 9, 420deg)]
-FAIL CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)] assert_equals: expected "matrix3d ( 0.25 , - 0.36 , 0.9 , 0 , 0.93 , 0.33 , - 0.13 , 0 , - 0.25 , 0.87 , 0.42 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.25 , 0.93 , - 0.25 , 0 , - 0.36 , 0.33 , 0.87 , 0 , 0.9 , - 0.13 , 0.42 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)]
PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0) should be [rotate3d(7, 8, 9, 0deg)]
-FAIL CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)] assert_equals: expected "matrix3d ( - 0.03 , 1 , - 0.08 , 0 , - 0.2 , 0.07 , 0.98 , 0 , 0.98 , 0.05 , 0.19 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.99 , 0.15 , - 0.04 , 0 , - 0.14 , 0.98 , 0.14 , 0 , 0.06 , - 0.14 , 0.99 , 0 , 0 , 0 , 0 , 1 ) "
-FAIL CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)] assert_equals: expected "matrix3d ( 0.94 , - 0.23 , 0.24 , 0 , 0.27 , 0.95 , - 0.16 , 0 , - 0.2 , 0.22 , 0.96 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.4 , 0.88 , - 0.24 , 0 , - 0.37 , 0.39 , 0.84 , 0 , 0.84 , - 0.25 , 0.49 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)]
+PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)]
PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (1) should be [rotate3d(7, 8, 9, 450deg)]
-FAIL CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)] assert_equals: expected "matrix3d ( - 0.49 , 0.58 , 0.65 , 0 , 0.58 , - 0.34 , 0.74 , 0 , 0.65 , 0.74 , - 0.16 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
-FAIL CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)] assert_equals: expected "matrix3d ( 0.25 , - 0.36 , 0.9 , 0 , 0.93 , 0.33 , - 0.13 , 0 , - 0.25 , 0.87 , 0.42 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.25 , 0.93 , - 0.25 , 0 , - 0.36 , 0.33 , 0.87 , 0 , 0.9 , - 0.13 , 0.42 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Transitions: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)]
+PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)]
PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0) should be [rotate3d(7, 8, 9, 0deg)]
-FAIL CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)] assert_equals: expected "matrix3d ( - 0.03 , 1 , - 0.08 , 0 , - 0.2 , 0.07 , 0.98 , 0 , 0.98 , 0.05 , 0.19 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.99 , 0.15 , - 0.04 , 0 , - 0.14 , 0.98 , 0.14 , 0 , 0.06 , - 0.14 , 0.99 , 0 , 0 , 0 , 0 , 1 ) "
-FAIL CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)] assert_equals: expected "matrix3d ( 0.94 , - 0.23 , 0.24 , 0 , 0.27 , 0.95 , - 0.16 , 0 , - 0.2 , 0.22 , 0.96 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.4 , 0.88 , - 0.24 , 0 , - 0.37 , 0.39 , 0.84 , 0 , 0.84 , - 0.25 , 0.49 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)]
+PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)]
PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (1) should be [rotate3d(7, 8, 9, 450deg)]
-FAIL CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)] assert_equals: expected "matrix3d ( - 0.49 , 0.58 , 0.65 , 0 , 0.58 , - 0.34 , 0.74 , 0 , 0.65 , 0.74 , - 0.16 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
-FAIL CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)] assert_equals: expected "matrix3d ( 0.25 , - 0.36 , 0.9 , 0 , 0.93 , 0.33 , - 0.13 , 0 , - 0.25 , 0.87 , 0.42 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.25 , 0.93 , - 0.25 , 0 , - 0.36 , 0.33 , 0.87 , 0 , 0.9 , - 0.13 , 0.42 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Transitions with transition: all: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)]
+PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)]
PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0) should be [rotate3d(7, 8, 9, 0deg)]
-FAIL CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)] assert_equals: expected "matrix3d ( - 0.03 , 1 , - 0.08 , 0 , - 0.2 , 0.07 , 0.98 , 0 , 0.98 , 0.05 , 0.19 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.99 , 0.15 , - 0.04 , 0 , - 0.14 , 0.98 , 0.14 , 0 , 0.06 , - 0.14 , 0.99 , 0 , 0 , 0 , 0 , 1 ) "
-FAIL CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)] assert_equals: expected "matrix3d ( 0.94 , - 0.23 , 0.24 , 0 , 0.27 , 0.95 , - 0.16 , 0 , - 0.2 , 0.22 , 0.96 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.4 , 0.88 , - 0.24 , 0 , - 0.37 , 0.39 , 0.84 , 0 , 0.84 , - 0.25 , 0.49 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)]
+PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)]
PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (1) should be [rotate3d(7, 8, 9, 450deg)]
-FAIL CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)] assert_equals: expected "matrix3d ( - 0.49 , 0.58 , 0.65 , 0 , 0.58 , - 0.34 , 0.74 , 0 , 0.65 , 0.74 , - 0.16 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
-FAIL Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)] assert_equals: expected "matrix3d ( 0.25 , - 0.36 , 0.9 , 0 , 0.93 , 0.33 , - 0.13 , 0 , - 0.25 , 0.87 , 0.42 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.25 , 0.93 , - 0.25 , 0 , - 0.36 , 0.33 , 0.87 , 0 , 0.9 , - 0.13 , 0.42 , 0 , 0 , 0 , 0 , 1 ) "
+PASS CSS Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)]
+PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (-1) should be [rotate3d(7, 8, 9, -450deg)]
PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0) should be [rotate3d(7, 8, 9, 0deg)]
-FAIL Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)] assert_equals: expected "matrix3d ( - 0.03 , 1 , - 0.08 , 0 , - 0.2 , 0.07 , 0.98 , 0 , 0.98 , 0.05 , 0.19 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.99 , 0.15 , - 0.04 , 0 , - 0.14 , 0.98 , 0.14 , 0 , 0.06 , - 0.14 , 0.99 , 0 , 0 , 0 , 0 , 1 ) "
-FAIL Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)] assert_equals: expected "matrix3d ( 0.94 , - 0.23 , 0.24 , 0 , 0.27 , 0.95 , - 0.16 , 0 , - 0.2 , 0.22 , 0.96 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix3d ( 0.4 , 0.88 , - 0.24 , 0 , - 0.37 , 0.39 , 0.84 , 0 , 0.84 , - 0.25 , 0.49 , 0 , 0 , 0 , 0 , 1 ) "
+PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.25) should be [rotate3d(7, 8, 9, 112.5deg)]
+PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (0.75) should be [rotate3d(7, 8, 9, 337.5deg)]
PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (1) should be [rotate3d(7, 8, 9, 450deg)]
-FAIL Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)] assert_equals: expected "matrix3d ( - 0.49 , 0.58 , 0.65 , 0 , 0.58 , - 0.34 , 0.74 , 0 , 0.65 , 0.74 , - 0.16 , 0 , 0 , 0 , 0 , 1 ) " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
+PASS Web Animations: property <transform> from [rotate3d(7, 8, 9, 0deg)] to [rotate3d(7, 8, 9, 450deg)] at (2) should be [rotate3d(7, 8, 9, 900deg)]
PASS CSS Transitions: property <transform> from [rotate3d(0, 1, 0, 0deg)] to [rotate3d(0, 1, 0, 450deg)] at (-1) should be [rotate3d(0, 1, 0, -450deg)]
PASS CSS Transitions: property <transform> from [rotate3d(0, 1, 0, 0deg)] to [rotate3d(0, 1, 0, 450deg)] at (0) should be [rotate3d(0, 1, 0, 0deg)]
PASS CSS Transitions: property <transform> from [rotate3d(0, 1, 0, 0deg)] to [rotate3d(0, 1, 0, 450deg)] at (0.25) should be [rotate3d(0, 1, 0, 112.5deg)]
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -173,7 +173,7 @@
PASS rotate (type: rotateList) has testAccumulation function
FAIL rotate without rotation axes assert_equals: The value should be -45deg at 0ms expected "-45deg" but got "-90deg"
FAIL rotate with underlying transform assert_equals: The value should be x 45deg at 0ms expected "x 45deg" but got "1 0 0 90deg"
-FAIL rotate with different rotation axes assert_approx_equals: expected 0.707107 0 0.707107 90deg but got 0 1 0 90deg: The value should be 0.707107 0 0.707107 90deg at 500ms but got 0 1 0 90deg expected 0.707107 +/- 0.0001 but got 0
+PASS rotate with different rotation axes
PASS translate (type: translateList) has testAccumulation function
FAIL translate assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
FAIL translate with transform assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -168,7 +168,7 @@
PASS rotate (type: rotateList) has testAddition function
FAIL rotate without rotation axes assert_equals: The value should be -45deg at 0ms expected "-45deg" but got "-90deg"
FAIL rotate with underlying transform assert_equals: The value should be y 45deg at 0ms expected "y 45deg" but got "0 1 0 90deg"
-FAIL rotate with different rotation axes assert_approx_equals: expected 0.57735 0.57735 0.57735 135deg but got 0 1 0 135deg: The value should be 0.57735 0.57735 0.57735 135deg at 500ms but got 0 1 0 135deg expected 0.57735 +/- 0.0001 but got 0
+PASS rotate with different rotation axes
PASS translate (type: translateList) has testAddition function
FAIL translate assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
FAIL translate with underlying transform assert_equals: The value should be -100px at 0ms expected "-100px" but got "-200px"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt (276230 => 276231)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt 2021-04-18 18:12:23 UTC (rev 276231)
@@ -192,7 +192,7 @@
FAIL transform: extend shorter list (to) assert_approx_equals: expected matrix(-1, 0, 0, -1, -50, 0) but got matrix(1, 0, 0, 1, 50, 0): The value should be matrix(-1, 0, 0, -1, -50, 0) at 500ms but got matrix(1, 0, 0, 1, 50, 0) expected -1 +/- 0.0001 but got 1
PASS transform: mismatch order of translate and rotate
PASS transform: matrix
-FAIL transform: rotate3d assert_approx_equals: expected matrix3d(0.853553, 0.146447, -0.5, 0, 0.146447, 0.853553, 0.5, 0, 0.5, -0.5, 0.707107, 0, 0, 0, 0, 1) but got matrix3d(0.866025, 0.288675, -0.408248, 0, 0, 0.816497, 0.57735, 0, 0.5, -0.5, 0.707107, 0, 0, 0, 0, 1): The value should be matrix3d(0.853553, 0.146447, -0.5, 0, 0.146447, 0.853553, 0.5, 0, 0.5, -0.5, 0.707107, 0, 0, 0, 0, 1) at 500ms but got matrix3d(0.866025, 0.288675, -0.408248, 0, 0, 0.816497, 0.57735, 0, 0.5, -0.5, 0.707107, 0, 0, 0, 0, 1) expected 0.853553 +/- 0.0001 but got 0.866025
+PASS transform: rotate3d
PASS transform: matrix3d
PASS transform: mismatched 3D transforms
PASS transform: rotateY
@@ -212,7 +212,7 @@
PASS rotate without rotation axes
FAIL rotate with rotation axes assert_equals: The value should be y 45deg at 500ms expected "y 45deg" but got "0 1 0 45deg"
FAIL rotate with rotation axes and range over 360 degrees assert_equals: The value should be y 180deg at 250ms expected "y 180deg" but got "0 1 0 180deg"
-FAIL rotate with different rotation axes assert_approx_equals: expected 0 0.707107 0.707107 45deg but got 0 1 0 45deg: The value should be 0 0.707107 0.707107 45deg at 500ms but got 0 1 0 45deg expected 0.707107 +/- 0.0001 but got 1
+PASS rotate with different rotation axes
PASS translate (type: translateList) has testInterpolation function
PASS translate with two unspecified values
PASS translate with one unspecified value
Modified: trunk/Source/WebCore/ChangeLog (276230 => 276231)
--- trunk/Source/WebCore/ChangeLog 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/Source/WebCore/ChangeLog 2021-04-18 18:12:23 UTC (rev 276231)
@@ -1,3 +1,16 @@
+2021-04-18 Antoine Quint <grao...@webkit.org>
+
+ Fix interpolation of the rotate CSS property
+ https://bugs.webkit.org/show_bug.cgi?id=224730
+
+ Reviewed by Dean Jackson.
+
+ Implement the CSS Transforms spec about animating the rotateZ() function
+ for the simplified case where only the angle is interpolated.
+
+ * platform/graphics/transforms/RotateTransformOperation.cpp:
+ (WebCore::RotateTransformOperation::blend):
+
2021-04-18 Youenn Fablet <you...@apple.com>
Blob URLs should use for their owner origin for CSP checks
Modified: trunk/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp (276230 => 276231)
--- trunk/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp 2021-04-18 16:42:06 UTC (rev 276230)
+++ trunk/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp 2021-04-18 18:12:23 UTC (rev 276231)
@@ -46,20 +46,33 @@
return RotateTransformOperation::create(m_x, m_y, m_z, m_angle - m_angle * context.progress, type());
const RotateTransformOperation* fromOp = downcast<RotateTransformOperation>(from);
-
- // Optimize for single axis rotation
- if (!fromOp || (fromOp->m_x == 0 && fromOp->m_y == 0 && fromOp->m_z == 1) ||
- (fromOp->m_x == 0 && fromOp->m_y == 1 && fromOp->m_z == 0) ||
- (fromOp->m_x == 1 && fromOp->m_y == 0 && fromOp->m_z == 0)) {
- double fromAngle = fromOp ? fromOp->m_angle : 0;
- return RotateTransformOperation::create(fromOp ? fromOp->m_x : m_x,
- fromOp ? fromOp->m_y : m_y,
- fromOp ? fromOp->m_z : m_z,
- WebCore::blend(fromAngle, m_angle, context), type());
+ const RotateTransformOperation* toOp = this;
+
+ // Interpolation of primitives and derived transform functions
+ //
+ // https://drafts.csswg.org/css-transforms-2/#interpolation-of-transform-functions
+ //
+ // For interpolations with the primitive rotate3d(), the direction vectors of the transform functions get
+ // normalized first. If the normalized vectors are not equal and both rotation angles are non-zero the transform
+ // functions get converted into 4x4 matrices first and interpolated as defined in section Interpolation of Matrices
+ // afterwards. Otherwise the rotation angle gets interpolated numerically and the rotation vector of the non-zero
+ // angle is used or (0, 0, 1) if both angles are zero.
+
+ auto normalizedVector = [](const RotateTransformOperation& op) -> FloatPoint3D {
+ FloatPoint3D vector { static_cast<float>(op.m_x), static_cast<float>(op.m_y), static_cast<float>(op.m_z) };
+ vector.normalize();
+ return vector;
+ };
+
+ double fromAngle = fromOp ? fromOp->m_angle : 0.0;
+ double toAngle = toOp->m_angle;
+ auto fromNormalizedVector = fromOp ? normalizedVector(*fromOp) : FloatPoint3D(0, 0, 1);
+ auto toNormalizedVector = normalizedVector(*toOp);
+ if (!fromAngle || !toAngle || fromNormalizedVector == toNormalizedVector) {
+ auto vector = (!fromAngle && toAngle) ? toNormalizedVector : fromNormalizedVector;
+ return RotateTransformOperation::create(vector.x(), vector.y(), vector.z(), WebCore::blend(fromAngle, toAngle, context), type());
}
- const RotateTransformOperation* toOp = this;
-
// Create the 2 rotation matrices
TransformationMatrix fromT;
TransformationMatrix toT;
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes