Title: [274235] trunk
Revision
274235
Author
grao...@webkit.org
Date
2021-03-10 13:41:28 -0800 (Wed, 10 Mar 2021)

Log Message

Improve font-variation-settings interpolation
https://bugs.webkit.org/show_bug.cgi?id=223027

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 140 PASS results.

* web-platform-tests/css/css-fonts/inheritance-expected.txt:
* web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt:
* web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

The animation wrapper for font-variation-settings had no canInterpolate() override. We now
implement such a method with the same logic used for blendFunc() method for FontVariationSettings
which only blends when the values have the same number of entries, and the same tag for each
entry.

We also modify the blendFunc() method to remove the return of empty values since it should only
be called in a scenario where the method can blend the values (due to canInterpolate() being
implemented) or with progress equal to 0 or 1 if the animation is discrete. In the latter cases,
we simply return the "from" or "to" values as-is.

Finally, to pass the tests for the "initial" and "inherit" values, we implement the custom
style builder methods for font-variation-settings.

* animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
(WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):

LayoutTests:

Remove an incorrect test that is also testing functionality well covered by the WPT test
css/css-fonts/animations/font-variation-settings-interpolation.html.

* animations/font-variations/font-variation-settings-unlike-expected.txt: Deleted.
* animations/font-variations/font-variation-settings-unlike.html: Deleted.
* platform/win/TestExpectations:

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (274234 => 274235)


--- trunk/LayoutTests/ChangeLog	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/ChangeLog	2021-03-10 21:41:28 UTC (rev 274235)
@@ -1,5 +1,19 @@
 2021-03-10  Antoine Quint  <grao...@webkit.org>
 
+        Improve font-variation-settings interpolation
+        https://bugs.webkit.org/show_bug.cgi?id=223027
+
+        Reviewed by Dean Jackson.
+
+        Remove an incorrect test that is also testing functionality well covered by the WPT test
+        css/css-fonts/animations/font-variation-settings-interpolation.html.
+
+        * animations/font-variations/font-variation-settings-unlike-expected.txt: Deleted.
+        * animations/font-variations/font-variation-settings-unlike.html: Deleted.
+        * platform/win/TestExpectations:
+
+2021-03-10  Antoine Quint  <grao...@webkit.org>
+
         Improve background-size interpolation
         https://bugs.webkit.org/show_bug.cgi?id=223025
 

Deleted: trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike-expected.txt (274234 => 274235)


--- trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike-expected.txt	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike-expected.txt	2021-03-10 21:41:28 UTC (rev 274235)
@@ -1,5 +0,0 @@
-Hello
-PASS - "font-variation-settings" property for "box" element at 0.5s saw something close to: normal
-PASS - "font-variation-settings" property for "box" element at 1s saw something close to: normal
-PASS - "font-variation-settings" property for "box" element at 2s saw something close to: normal
-

Deleted: trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike.html (274234 => 274235)


--- trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike.html	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/animations/font-variations/font-variation-settings-unlike.html	2021-03-10 21:41:28 UTC (rev 274235)
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src=""
-<style>
-@font-face {
-    font-family: "Boxis";
-    src: url("resources/Boxis-VF.ttf");
-}
-
-@keyframes TheAnimation {
-    from {
-        font-variation-settings: "hght" 400, "wdth" 500;
-    }
-    to {
-        font-variation-settings: "hght" 600;
-    }
-}
-
-#box {
-    font: 100px "Boxis";
-    animation-duration: 3s;
-    animation-timing-function: linear;
-}
-</style>
-</head>
-<body>
-<div id="box">Hello</div>
-<div id="result"></div>
-<script>
-var expectedValues = [
-    // [animation-name, time, element-id, property, expected-value, tolerance]
-    ["TheAnimation", 0.5, "box", "font-variation-settings", "normal", 5],
-    ["TheAnimation", 1.0, "box", "font-variation-settings", "normal", 5],
-    ["TheAnimation", 2.0, "box", "font-variation-settings", "normal", 5],
-];
-
-var promises = [];
-
-document.fonts.ready.then(function() {
-    document.getElementById("box").style.animationName = "TheAnimation";
-    runAnimationTest(expectedValues, undefined, undefined, undefined, false, undefined);
-});
-</script>
-</body>
-</html>

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (274234 => 274235)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-10 21:41:28 UTC (rev 274235)
@@ -1,5 +1,19 @@
 2021-03-10  Antoine Quint  <grao...@webkit.org>
 
+        Improve font-variation-settings interpolation
+        https://bugs.webkit.org/show_bug.cgi?id=223027
+
+        Reviewed by Dean Jackson.
+
+        Add an extra 140 PASS results.
+
+        * web-platform-tests/css/css-fonts/inheritance-expected.txt:
+        * web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt:
+        * web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt:
+        * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
+
+2021-03-10  Antoine Quint  <grao...@webkit.org>
+
         Improve background-size interpolation
         https://bugs.webkit.org/show_bug.cgi?id=223025
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt (274234 => 274235)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt	2021-03-10 21:41:28 UTC (rev 274235)
@@ -11,14 +11,14 @@
 FAIL Compositing: property <font-variation-settings> underlying ['test' 50] from add ['test' 100] to replace ['test' 200] at (1.5) should be ['test' 225] assert_equals: expected "\" test \" 225 " but got "\" test \" 250 "
 PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (-0.3) should be [normal]
 PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (0) should be [normal]
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (0.5) should be ['test' 200] assert_equals: expected "\" test \" 200 " but got "normal "
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (1) should be ['test' 200] assert_equals: expected "\" test \" 200 " but got "normal "
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (1.5) should be ['test' 200] assert_equals: expected "\" test \" 200 " but got "normal "
+PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (0.5) should be ['test' 200]
+PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (1) should be ['test' 200]
+PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to replace ['test' 200] at (1.5) should be ['test' 200]
 PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (-0.3) should be [normal]
 PASS Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (0) should be [normal]
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (0.5) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "normal "
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (1) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "normal "
-FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (1.5) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "normal "
+FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (0.5) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "\" test \" 200 "
+FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (1) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "\" test \" 200 "
+FAIL Compositing: property <font-variation-settings> underlying ['test' 100] from add [normal] to add ['test' 200] at (1.5) should be ['test' 300] assert_equals: expected "\" test \" 300 " but got "\" test \" 200 "
 FAIL Compositing: property <font-variation-settings> underlying ['aaaa' 100, 'bbbb' 200] from add ['aaaa' 20, 'bbbb' 50] to add ['aaaa' 30, 'bbbb' 100] at (-0.3) should be ['aaaa' 117, 'bbbb' 235] assert_equals: expected "\" bbbb \" 235 , \" aaaa \" 117 " but got "\" bbbb \" 35 , \" aaaa \" 17 "
 FAIL Compositing: property <font-variation-settings> underlying ['aaaa' 100, 'bbbb' 200] from add ['aaaa' 20, 'bbbb' 50] to add ['aaaa' 30, 'bbbb' 100] at (0) should be ['aaaa' 120, 'bbbb' 250] assert_equals: expected "\" bbbb \" 250 , \" aaaa \" 120 " but got "\" bbbb \" 50 , \" aaaa \" 20 "
 FAIL Compositing: property <font-variation-settings> underlying ['aaaa' 100, 'bbbb' 200] from add ['aaaa' 20, 'bbbb' 50] to add ['aaaa' 30, 'bbbb' 100] at (0.5) should be ['aaaa' 125, 'bbbb' 275] assert_equals: expected "\" bbbb \" 275 , \" aaaa \" 125 " but got "\" bbbb \" 75 , \" aaaa \" 25 "

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt (274234 => 274235)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt	2021-03-10 21:41:28 UTC (rev 274235)
@@ -23,32 +23,32 @@
 PASS Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (0.7) should be ['test' 17]
 PASS Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (1) should be ['test' 20]
 PASS Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (1.5) should be ['test' 25]
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 24 "
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 30 "
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 36 "
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 40 "
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 42 "
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50]
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50]
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50]
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
 PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
-FAIL CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 60 "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 24 "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 30 "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 36 "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 40 "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 42 "
+PASS CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 60 "
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" - 2 "
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" 10 "
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" 22 "
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 30 "
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 34 "
+PASS CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
 PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
-FAIL CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 70 "
-FAIL Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" - 2 "
-FAIL Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" - 2 "
-FAIL Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial] assert_equals: expected "\" test \" 30 " but got "\" test \" 13.6 "
-FAIL Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 31.8 "
-FAIL Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50] assert_equals: expected "\" test \" 50 " but got "\" test \" 42.72 "
+PASS CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
+PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
+PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
+PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
+PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
+PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
 PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
 PASS Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
 PASS CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
@@ -63,18 +63,18 @@
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
-FAIL CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35] assert_array_equals: expected property 0 to be "\"test\" 35" but got "\"test\" 5" (expected array ["\"test\" 35"] got ["\"test\" 5"])
-FAIL CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30] assert_array_equals: expected property 0 to be "\"test\" 30" but got "\"test\" 10" (expected array ["\"test\" 30"] got ["\"test\" 10"])
-FAIL CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27] assert_array_equals: expected property 0 to be "\"test\" 27" but got "\"test\" 13" (expected array ["\"test\" 27"] got ["\"test\" 13"])
-FAIL CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23] assert_array_equals: expected property 0 to be "\"test\" 23" but got "\"test\" 17" (expected array ["\"test\" 23"] got ["\"test\" 17"])
+PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
+PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
+PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
+PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
 PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
-FAIL CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15] assert_array_equals: expected property 0 to be "\"test\" 15" but got "\"test\" 25" (expected array ["\"test\" 15"] got ["\"test\" 25"])
-FAIL Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35] assert_array_equals: expected property 0 to be "\"test\" 35" but got "\"test\" 5" (expected array ["\"test\" 35"] got ["\"test\" 5"])
-FAIL Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30] assert_array_equals: expected property 0 to be "\"test\" 30" but got "\"test\" 5" (expected array ["\"test\" 30"] got ["\"test\" 5"])
-FAIL Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27] assert_array_equals: expected property 0 to be "\"test\" 27" but got "\"test\" 9.5" (expected array ["\"test\" 27"] got ["\"test\" 9.5"])
-FAIL Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23] assert_array_equals: expected property 0 to be "\"test\" 23" but got "\"test\" 16.85" (expected array ["\"test\" 23"] got ["\"test\" 16.85"])
+PASS CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
+PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
+PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
+PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
+PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
 PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
-FAIL Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15] assert_array_equals: expected property 0 to be "\"test\" 15" but got "\"test\" 20" (expected array ["\"test\" 15"] got ["\"test\" 20"])
+PASS Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
 PASS CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
 PASS CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
 PASS CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
@@ -87,18 +87,18 @@
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
-FAIL CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35] assert_array_equals: expected property 0 to be "\"test\" 35" but got "\"test\" 5" (expected array ["\"test\" 35"] got ["\"test\" 5"])
-FAIL CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30] assert_array_equals: expected property 0 to be "\"test\" 30" but got "\"test\" 10" (expected array ["\"test\" 30"] got ["\"test\" 10"])
-FAIL CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27] assert_array_equals: expected property 0 to be "\"test\" 27" but got "\"test\" 13" (expected array ["\"test\" 27"] got ["\"test\" 13"])
-FAIL CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23] assert_array_equals: expected property 0 to be "\"test\" 23" but got "\"test\" 17" (expected array ["\"test\" 23"] got ["\"test\" 17"])
+PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
+PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
+PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
+PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
 PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
-FAIL CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15] assert_array_equals: expected property 0 to be "\"test\" 15" but got "\"test\" 25" (expected array ["\"test\" 15"] got ["\"test\" 25"])
-FAIL Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35] assert_array_equals: expected property 0 to be "\"test\" 35" but got "\"test\" 5" (expected array ["\"test\" 35"] got ["\"test\" 5"])
-FAIL Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30] assert_array_equals: expected property 0 to be "\"test\" 30" but got "\"test\" 5" (expected array ["\"test\" 30"] got ["\"test\" 5"])
-FAIL Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27] assert_array_equals: expected property 0 to be "\"test\" 27" but got "\"test\" 9.5" (expected array ["\"test\" 27"] got ["\"test\" 9.5"])
-FAIL Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23] assert_array_equals: expected property 0 to be "\"test\" 23" but got "\"test\" 16.85" (expected array ["\"test\" 23"] got ["\"test\" 16.85"])
+PASS CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
+PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
+PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
+PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
+PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
 PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
-FAIL Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15] assert_array_equals: expected property 0 to be "\"test\" 15" but got "\"test\" 20" (expected array ["\"test\" 15"] got ["\"test\" 20"])
+PASS Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
 PASS CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be [normal]
 PASS CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be [normal]
 PASS CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be [normal]
@@ -113,16 +113,16 @@
 PASS CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
 PASS CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
-FAIL CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
+PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
+PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
+PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
 PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
 PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
 PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
 PASS CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
-FAIL Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20] assert_equals: expected "\" test \" 20 " but got "normal "
+PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
+PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
+PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
 PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
 PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
 PASS Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
@@ -199,90 +199,90 @@
 PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13]
 PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10]
 PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5]
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] assert_equals: expected "\" cccc \" 30 , \" bbbb \" 20 , \" aaaa \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10] assert_equals: expected "\" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_equals: expected "\" cccc \" 20 , \" bbbb \" 10 , \" aaaa \" 0 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
-FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30] assert_equals: expected "\" ffff \" 30 , \" eeee \" 20 , \" dddd \" 10 " but got "normal "
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
+PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
 FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38] assert_array_equals: expected property 0 to be "\"aaaa\" -3.40282e+38" but got "\"aaaa\" -Infinity" (expected array ["\"aaaa\" -3.40282e+38", "\"bbbb\" 3.40282e+38"] got ["\"aaaa\" -Infinity", "\"bbbb\" Infinity"])
 FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38] assert_array_equals: expected property 0 to be "\"aaaa\" -3.40282e+38" but got "\"aaaa\" -Infinity" (expected array ["\"aaaa\" -3.40282e+38", "\"bbbb\" 3.40282e+38"] got ["\"aaaa\" -Infinity", "\"bbbb\" Infinity"])
 FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38] assert_array_equals: expected property 0 to be "\"aaaa\" -3.40282e+38" but got "\"aaaa\" -Infinity" (expected array ["\"aaaa\" -3.40282e+38", "\"bbbb\" 3.40282e+38"] got ["\"aaaa\" -Infinity", "\"bbbb\" Infinity"])

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/inheritance-expected.txt (274234 => 274235)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/inheritance-expected.txt	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/inheritance-expected.txt	2021-03-10 21:41:28 UTC (rev 274235)
@@ -33,7 +33,7 @@
 PASS Property font-variant-position has initial value normal
 PASS Property font-variant-position inherits
 PASS Property font-variation-settings has initial value normal
-FAIL Property font-variation-settings inherits assert_not_equals: got disallowed value "\"wght\" 700"
+PASS Property font-variation-settings inherits
 FAIL Property font-weight has initial value 400 assert_equals: expected "400" but got "normal"
 PASS Property font-weight inherits
 

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


--- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt	2021-03-10 21:41:28 UTC (rev 274235)
@@ -240,14 +240,14 @@
 PASS font-variation-settings (type: fontVariationSettings) has testInterpolation function
 PASS font-variation-settings supports animation as float
 PASS font-variation-settings supports animation as float with multiple tags
-FAIL font-variation-settings supports animation as float with multiple duplicate tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms lengths differ, expected array ["\"wdth\" 2", "\"wght\" 1.2"] length 2, got ["normal"] length 1
+FAIL font-variation-settings supports animation as float with multiple duplicate tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms expected property 0 to be "\"wdth\" 2" but got "\"wdth\" 1" (expected array ["\"wdth\" 2", "\"wght\" 1.2"] got ["\"wdth\" 1", "\"wght\" 1.1"])
 PASS font-variation-settings (type: discrete) has testInterpolation function
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with linear easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "normal"
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with effect easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "normal"
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with keyframe easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "normal"
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with linear easing assert_equals: The value should be "wdth" 5 at 0ms expected "\"wdth\" 5" but got "normal"
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with effect easing assert_equals: The value should be "wdth" 5 at 0ms expected "\"wdth\" 5" but got "normal"
-FAIL font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with keyframe easing assert_equals: The value should be "wdth" 5 at 0ms expected "\"wdth\" 5" but got "normal"
+FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with linear easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "\"wght\" 1.1, \"wdth\" 1"
+FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with effect easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "\"wght\" 1.1, \"wdth\" 1"
+FAIL font-variation-settings uses discrete animation when animating between ""wdth" 1, "wght" 1.1" and ""wdth" 5" with keyframe easing assert_equals: The value should be "wdth" 1, "wght" 1.1 at 0ms expected "\"wdth\" 1, \"wght\" 1.1" but got "\"wght\" 1.1, \"wdth\" 1"
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with linear easing
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with effect easing
+PASS font-variation-settings uses discrete animation when animating between ""wdth" 5" and "normal" with keyframe easing
 PASS grid-auto-columns (type: discrete) has testInterpolation function
 PASS grid-auto-columns uses discrete animation when animating between "1px" and "5px" with linear easing
 PASS grid-auto-columns uses discrete animation when animating between "1px" and "5px" with effect easing

Modified: trunk/LayoutTests/platform/win/TestExpectations (274234 => 274235)


--- trunk/LayoutTests/platform/win/TestExpectations	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/LayoutTests/platform/win/TestExpectations	2021-03-10 21:41:28 UTC (rev 274235)
@@ -3533,7 +3533,6 @@
 accessibility/win/selection-and-focus.html [ Failure ]
 accessibility/win/text-role.html [ Failure ]
 animations/font-variations/font-variation-settings-order.html [ Failure ]
-animations/font-variations/font-variation-settings-unlike.html [ Failure ]
 animations/font-variations/font-variation-settings.html [ Failure ]
 imported/w3c/web-platform-tests/css/css-flexbox/flex-item-contains-strict.html [ Failure ]
 editing/caret/emoji.html [ Failure ]

Modified: trunk/Source/WebCore/ChangeLog (274234 => 274235)


--- trunk/Source/WebCore/ChangeLog	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/Source/WebCore/ChangeLog	2021-03-10 21:41:28 UTC (rev 274235)
@@ -1,5 +1,31 @@
 2021-03-10  Antoine Quint  <grao...@webkit.org>
 
+        Improve font-variation-settings interpolation
+        https://bugs.webkit.org/show_bug.cgi?id=223027
+
+        Reviewed by Dean Jackson.
+
+        The animation wrapper for font-variation-settings had no canInterpolate() override. We now
+        implement such a method with the same logic used for blendFunc() method for FontVariationSettings
+        which only blends when the values have the same number of entries, and the same tag for each
+        entry.
+
+        We also modify the blendFunc() method to remove the return of empty values since it should only
+        be called in a scenario where the method can blend the values (due to canInterpolate() being
+        implemented) or with progress equal to 0 or 1 if the animation is discrete. In the latter cases,
+        we simply return the "from" or "to" values as-is.
+
+        Finally, to pass the tests for the "initial" and "inherit" values, we implement the custom
+        style builder methods for font-variation-settings.
+
+        * animation/CSSPropertyAnimation.cpp:
+        (WebCore::blendFunc):
+        * style/StyleBuilderCustom.h:
+        (WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
+        (WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):
+
+2021-03-10  Antoine Quint  <grao...@webkit.org>
+
         Improve background-size interpolation
         https://bugs.webkit.org/show_bug.cgi?id=223025
 

Modified: trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp (274234 => 274235)


--- trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp	2021-03-10 21:41:28 UTC (rev 274235)
@@ -526,15 +526,19 @@
 
 static inline FontVariationSettings blendFunc(const CSSPropertyBlendingClient* anim, const FontVariationSettings& from, const FontVariationSettings& to, double progress)
 {
-    if (from.size() != to.size())
-        return FontVariationSettings();
+    if (!progress)
+        return from;
+
+    if (progress == 1.0)
+        return to;
+
+    ASSERT(from.size() == to.size());
     FontVariationSettings result;
     unsigned size = from.size();
     for (unsigned i = 0; i < size; ++i) {
         auto& fromItem = from.at(i);
         auto& toItem = to.at(i);
-        if (fromItem.tag() != toItem.tag())
-            return FontVariationSettings();
+        ASSERT(fromItem.tag() == toItem.tag());
         float interpolated = blendFunc(anim, fromItem.value(), toItem.value(), progress);
         result.insert({ fromItem.tag(), interpolated });
     }
@@ -852,6 +856,23 @@
             return false;
         return this->value(a) == this->value(b);
     }
+
+    bool canInterpolate(const RenderStyle* a, const RenderStyle* b) const override
+    {
+        auto aVariationSettings = value(a);
+        auto bVariationSettings = value(b);
+
+        if (aVariationSettings.size() != bVariationSettings.size())
+            return false;
+
+        auto size = aVariationSettings.size();
+        for (unsigned i = 0; i < size; ++i) {
+            if (aVariationSettings.at(i).tag() != bVariationSettings.at(i).tag())
+                return false;
+        }
+
+        return true;
+    }
 };
 #endif
 

Modified: trunk/Source/WebCore/style/StyleBuilderCustom.h (274234 => 274235)


--- trunk/Source/WebCore/style/StyleBuilderCustom.h	2021-03-10 21:30:59 UTC (rev 274234)
+++ trunk/Source/WebCore/style/StyleBuilderCustom.h	2021-03-10 21:41:28 UTC (rev 274235)
@@ -118,8 +118,8 @@
     static void applyInheritWebkitMaskImage(BuilderState&) { }
     static void applyInitialFontFeatureSettings(BuilderState&) { }
     static void applyInheritFontFeatureSettings(BuilderState&) { }
-    static void applyInitialFontVariationSettings(BuilderState&) { }
-    static void applyInheritFontVariationSettings(BuilderState&) { }
+    static void applyInitialFontVariationSettings(BuilderState&);
+    static void applyInheritFontVariationSettings(BuilderState&);
 
     // Custom handling of inherit + value setting only.
     static void applyInheritDisplay(BuilderState&);
@@ -1098,6 +1098,16 @@
     return true;
 }
 
+inline void BuilderCustom::applyInitialFontVariationSettings(BuilderState& builderState)
+{
+    builderState.style().setFontVariationSettings({ });
+}
+
+inline void BuilderCustom::applyInheritFontVariationSettings(BuilderState& builderState)
+{
+    builderState.style().setFontVariationSettings(builderState.parentStyle().fontVariationSettings());
+}
+
 inline void BuilderCustom::applyInheritDisplay(BuilderState& builderState)
 {
     DisplayType display = builderState.parentStyle().display();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to