Title: [251658] trunk
Revision
251658
Author
grao...@webkit.org
Date
2019-10-28 10:01:55 -0700 (Mon, 28 Oct 2019)

Log Message

CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
https://bugs.webkit.org/show_bug.cgi?id=203484

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

* web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt:

Source/WebCore:

The CSS specification does not allow for "0" as a valid time (https://drafts.csswg.org/css-values-3/#time).
We change the way we parse time values to only allow for "0" if the UnitlessQuirk is set to Allow, which is
only the case for the -webkit-marquee-speed property.

* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeTime):

Source/WebInspectorUI:

Use 0s instead of 0 in places where unitless times were used but shouldn't have been.

* UserInterface/Views/FindBanner.css:
(.no-find-banner-transition:matches(.find-banner, .supports-find-banner)):
* UserInterface/Views/TabBar.css:
(.tab-bar > .item > .close):

LayoutTests:

Use 0s instead of 0 in places where unitless times were used but shouldn't have been.

* animations/fill-mode-forwards-zero-duration.html:
* compositing/animation/keyframe-order.html:
* css1/units/zero-duration-without-units.html:
* legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html:
* legacy-animation-engine/compositing/animation/keyframe-order.html:
* legacy-animation-engine/css1/units/zero-duration-without-units.html:
* legacy-animation-engine/transitions/zero-duration-in-list.html:
* legacy-animation-engine/transitions/zero-duration-without-units.html:
* transitions/zero-duration-in-list.html:
* transitions/zero-duration-without-units.html:
* webanimations/css-animations-expected.txt:
* webanimations/css-animations.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (251657 => 251658)


--- trunk/LayoutTests/ChangeLog	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/ChangeLog	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,3 +1,25 @@
+2019-10-28  Antoine Quint  <grao...@apple.com>
+
+        CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
+        https://bugs.webkit.org/show_bug.cgi?id=203484
+
+        Reviewed by Antti Koivisto.
+
+        Use 0s instead of 0 in places where unitless times were used but shouldn't have been.
+
+        * animations/fill-mode-forwards-zero-duration.html:
+        * compositing/animation/keyframe-order.html:
+        * css1/units/zero-duration-without-units.html:
+        * legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html:
+        * legacy-animation-engine/compositing/animation/keyframe-order.html:
+        * legacy-animation-engine/css1/units/zero-duration-without-units.html:
+        * legacy-animation-engine/transitions/zero-duration-in-list.html:
+        * legacy-animation-engine/transitions/zero-duration-without-units.html:
+        * transitions/zero-duration-in-list.html:
+        * transitions/zero-duration-without-units.html:
+        * webanimations/css-animations-expected.txt:
+        * webanimations/css-animations.html:
+
 2019-10-28  Carlos Alberto Lopez Perez  <clo...@igalia.com>
 
         [GTK][WPE] Enable CSS typed OM

Modified: trunk/LayoutTests/animations/fill-mode-forwards-zero-duration.html (251657 => 251658)


--- trunk/LayoutTests/animations/fill-mode-forwards-zero-duration.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/animations/fill-mode-forwards-zero-duration.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       height: 100px;
       width: 100px;
       background-color: blue;
-      animation: anim1 0 2s linear forwards;
+      animation: anim1 0s 2s linear forwards;
     }
     @keyframes anim1 {
         from { left: 400px; }

Modified: trunk/LayoutTests/compositing/animation/keyframe-order.html (251657 => 251658)


--- trunk/LayoutTests/compositing/animation/keyframe-order.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/compositing/animation/keyframe-order.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -21,7 +21,7 @@
     }
     
     .spinner.animating {
-        -webkit-animation: imageSpin 999999999s linear 0 infinite
+        -webkit-animation: imageSpin 999999999s linear 0s infinite
     }
 
     .inner {

Modified: trunk/LayoutTests/css1/units/zero-duration-without-units.html (251657 => 251658)


--- trunk/LayoutTests/css1/units/zero-duration-without-units.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/css1/units/zero-duration-without-units.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -12,7 +12,7 @@
       background-color: blue;
       -webkit-transition-property: top, left;
       -webkit-transition-duration: 1s;
-      -webkit-transition-duration: 0;
+      -webkit-transition-duration: 0s;
       -webkit-transition-timing-function: linear;
     }
   </style>

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (251657 => 251658)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,3 +1,16 @@
+2019-10-28  Antoine Quint  <grao...@apple.com>
+
+        CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
+        https://bugs.webkit.org/show_bug.cgi?id=203484
+
+        Reviewed by Antti Koivisto.
+
+        Mark WPT progressions.
+
+        * web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt:
+        * web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt:
+        * web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt:
+
 2019-10-27  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] The easing property for a CSSTransition effect is always "linear"

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt (251657 => 251658)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,6 +1,6 @@
 
 PASS e.style['animation-delay'] = "infinite" should not set the property value 
-FAIL e.style['animation-delay'] = "0" should not set the property value assert_equals: expected "" but got "0ms"
+PASS e.style['animation-delay'] = "0" should not set the property value 
 PASS e.style['animation-delay'] = "1s 2s" should not set the property value 
 PASS e.style['animation-delay'] = "initial, -3s" should not set the property value 
 PASS e.style['animation-delay'] = "-3s, initial" should not set the property value 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt (251657 => 251658)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,6 +1,6 @@
 
 PASS e.style['animation-duration'] = "-3s" should not set the property value 
-FAIL e.style['animation-duration'] = "0" should not set the property value assert_equals: expected "" but got "0ms"
+PASS e.style['animation-duration'] = "0" should not set the property value 
 PASS e.style['animation-duration'] = "infinite" should not set the property value 
 PASS e.style['animation-duration'] = "1s 2s" should not set the property value 
 PASS e.style['animation-duration'] = "initial, 1s" should not set the property value 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt (251657 => 251658)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,6 +1,6 @@
 
 PASS e.style['transition-delay'] = "infinite" should not set the property value 
-FAIL e.style['transition-delay'] = "0" should not set the property value assert_equals: expected "" but got "0ms"
+PASS e.style['transition-delay'] = "0" should not set the property value 
 PASS e.style['transition-delay'] = "500ms 0.5s" should not set the property value 
 PASS e.style['transition-delay'] = "-3s, initial" should not set the property value 
 PASS e.style['transition-delay'] = "initial, -3s" should not set the property value 

Modified: trunk/LayoutTests/legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html (251657 => 251658)


--- trunk/LayoutTests/legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       height: 100px;
       width: 100px;
       background-color: blue;
-      animation: anim1 0 2s linear forwards;
+      animation: anim1 0s 2s linear forwards;
     }
     @keyframes anim1 {
         from { left: 400px; }

Modified: trunk/LayoutTests/legacy-animation-engine/compositing/animation/keyframe-order.html (251657 => 251658)


--- trunk/LayoutTests/legacy-animation-engine/compositing/animation/keyframe-order.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/legacy-animation-engine/compositing/animation/keyframe-order.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -21,7 +21,7 @@
     }
     
     .spinner.animating {
-        -webkit-animation: imageSpin 999999999s linear 0 infinite
+        -webkit-animation: imageSpin 999999999s linear 0s infinite
     }
 
     .inner {

Modified: trunk/LayoutTests/legacy-animation-engine/css1/units/zero-duration-without-units.html (251657 => 251658)


--- trunk/LayoutTests/legacy-animation-engine/css1/units/zero-duration-without-units.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/legacy-animation-engine/css1/units/zero-duration-without-units.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -11,7 +11,7 @@
       background-color: blue;
       -webkit-transition-property: top, left;
       -webkit-transition-duration: 1s;
-      -webkit-transition-duration: 0;
+      -webkit-transition-duration: 0s;
       -webkit-transition-timing-function: linear;
     }
   </style>

Modified: trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-in-list.html (251657 => 251658)


--- trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-in-list.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-in-list.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       height: 100px;
       width: 100px;
       background-color: blue;
-      -webkit-transition-duration: 0, 0.5s;
+      -webkit-transition-duration: 0s, 0.5s;
       -webkit-transition-timing-function: linear;
       -webkit-transition-property: top, left;
     }

Modified: trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-without-units.html (251657 => 251658)


--- trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-without-units.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/legacy-animation-engine/transitions/zero-duration-without-units.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       background-color: blue;
       -webkit-transition-property: top;
       -webkit-transition-duration: 1s;
-      -webkit-transition-duration: 0;
+      -webkit-transition-duration: 0s;
     }
   </style>
   <script>

Modified: trunk/LayoutTests/transitions/zero-duration-in-list.html (251657 => 251658)


--- trunk/LayoutTests/transitions/zero-duration-in-list.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/transitions/zero-duration-in-list.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       height: 100px;
       width: 100px;
       background-color: blue;
-      -webkit-transition-duration: 0, 0.5s;
+      -webkit-transition-duration: 0s, 0.5s;
       -webkit-transition-timing-function: linear;
       -webkit-transition-property: top, left;
     }

Modified: trunk/LayoutTests/transitions/zero-duration-without-units.html (251657 => 251658)


--- trunk/LayoutTests/transitions/zero-duration-without-units.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/transitions/zero-duration-without-units.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -9,7 +9,7 @@
       background-color: blue;
       -webkit-transition-property: top;
       -webkit-transition-duration: 1s;
-      -webkit-transition-duration: 0;
+      -webkit-transition-duration: 0s;
     }
   </style>
   <script>

Modified: trunk/LayoutTests/webanimations/css-animations-expected.txt (251657 => 251658)


--- trunk/LayoutTests/webanimations/css-animations-expected.txt	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/webanimations/css-animations-expected.txt	2019-10-28 17:01:55 UTC (rev 251658)
@@ -11,5 +11,5 @@
 PASS Calling finish() on the animation no longer lists the animation after it has been running. 
 PASS Seeking the animation to its end time no longer lists the animation after it has been running. 
 PASS Setting the target's animation-name to none no longer lists the animation after it has been running. 
-PASS Setting the target's animation-duration to 0 no longer lists the animation after it has been running. 
+PASS Setting the target's animation-duration to 0s no longer lists the animation after it has been running. 
 

Modified: trunk/LayoutTests/webanimations/css-animations.html (251657 => 251658)


--- trunk/LayoutTests/webanimations/css-animations.html	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/LayoutTests/webanimations/css-animations.html	2019-10-28 17:01:55 UTC (rev 251658)
@@ -91,7 +91,7 @@
 
     assert_equals(target.getAnimations()[0].effect.getTiming().delay, -1000, "The animation's delay matches the initial animation-delay property.");
 
-    target.style.animationDelay = 0;
+    target.style.animationDelay = "0s";
     assert_equals(target.getAnimations()[0].effect.getTiming().delay, 0, "The animation's delay matches the updated animation-delay property.");
 }, "Web Animations should reflect the animation-delay property.");
 
@@ -221,7 +221,7 @@
 runAnimationCompletionTest(animation => animation.finish(), "Calling finish() on the animation");
 runAnimationCompletionTest(animation => animation.currentTime = animation.effect.getTiming().duration, "Seeking the animation to its end time");
 runAnimationCompletionTest(animation => animation.effect.target.style.animationName = "none", "Setting the target's animation-name to none");
-runAnimationCompletionTest(animation => animation.effect.target.style.animationDuration = 0, "Setting the target's animation-duration to 0");
+runAnimationCompletionTest(animation => animation.effect.target.style.animationDuration = "0s", "Setting the target's animation-duration to 0s");
 
 </script>
 </body>
\ No newline at end of file

Modified: trunk/Source/WebCore/ChangeLog (251657 => 251658)


--- trunk/Source/WebCore/ChangeLog	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/Source/WebCore/ChangeLog	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,3 +1,17 @@
+2019-10-28  Antoine Quint  <grao...@apple.com>
+
+        CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
+        https://bugs.webkit.org/show_bug.cgi?id=203484
+
+        Reviewed by Antti Koivisto.
+
+        The CSS specification does not allow for "0" as a valid time (https://drafts.csswg.org/css-values-3/#time).
+        We change the way we parse time values to only allow for "0" if the UnitlessQuirk is set to Allow, which is
+        only the case for the -webkit-marquee-speed property.
+
+        * css/parser/CSSPropertyParserHelpers.cpp:
+        (WebCore::CSSPropertyParserHelpers::consumeTime):
+
 2019-10-27  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] The easing property for a CSSTransition effect is always "linear"

Modified: trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp (251657 => 251658)


--- trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp	2019-10-28 17:01:55 UTC (rev 251658)
@@ -447,7 +447,7 @@
 {
     const CSSParserToken& token = range.peek();
     CSSPrimitiveValue::UnitType unit = token.unitType();
-    bool acceptUnitless = token.type() == NumberToken && shouldAcceptUnitlessValue(token.numericValue(), cssParserMode, unitless);
+    bool acceptUnitless = token.type() == NumberToken && unitless == UnitlessQuirk::Allow && shouldAcceptUnitlessValue(token.numericValue(), cssParserMode, unitless);
     if (acceptUnitless)
         unit = CSSPrimitiveValue::UnitType::CSS_MS;
     if (token.type() == DimensionToken || acceptUnitless) {

Modified: trunk/Source/WebInspectorUI/ChangeLog (251657 => 251658)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-10-28 17:01:55 UTC (rev 251658)
@@ -1,3 +1,17 @@
+2019-10-28  Antoine Quint  <grao...@apple.com>
+
+        CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
+        https://bugs.webkit.org/show_bug.cgi?id=203484
+
+        Reviewed by Antti Koivisto.
+
+        Use 0s instead of 0 in places where unitless times were used but shouldn't have been.
+
+        * UserInterface/Views/FindBanner.css:
+        (.no-find-banner-transition:matches(.find-banner, .supports-find-banner)):
+        * UserInterface/Views/TabBar.css:
+        (.tab-bar > .item > .close):
+
 2019-10-25  Devin Rousso  <drou...@apple.com>
 
         Web Inspector: Styles: un-experimentalize showing rule icons

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/FindBanner.css (251657 => 251658)


--- trunk/Source/WebInspectorUI/UserInterface/Views/FindBanner.css	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/FindBanner.css	2019-10-28 17:01:55 UTC (rev 251658)
@@ -52,7 +52,7 @@
 }
 
 .no-find-banner-transition:matches(.find-banner, .supports-find-banner) {
-    transition-duration: 0 !important;
+    transition-duration: 0s !important;
 }
 
 .supports-find-banner {

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TabBar.css (251657 => 251658)


--- trunk/Source/WebInspectorUI/UserInterface/Views/TabBar.css	2019-10-28 16:59:08 UTC (rev 251657)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TabBar.css	2019-10-28 17:01:55 UTC (rev 251658)
@@ -190,7 +190,7 @@
 
     transition-property: background-color, opacity;
     transition-duration: 250ms, 500ms;
-    transition-delay: 0, 50ms;
+    transition-delay: 0s, 50ms;
 
     -webkit-margin-end: 4px;
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to