Title: [229891] trunk
Revision
229891
Author
grao...@webkit.org
Date
2018-03-23 04:49:04 -0700 (Fri, 23 Mar 2018)

Log Message

[Web Animations] infinite repeat counts aren't reflected for CSS Animations
https://bugs.webkit.org/show_bug.cgi?id=183932

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

* css-animations/test_animation-computed-timing-expected.txt:
* css-animations/test_animation-finish-expected.txt:

Source/WebCore:

The "infinite" value for animation-repeat-count is reflected as a special value which resolves to -1. We need to check
for this special value before setting the iterations count on the AnimationEffectTimingReadOnly object.

* animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):

LayoutTests:

One of the Mozilla tests now passes completely and reliably.

* TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (229890 => 229891)


--- trunk/LayoutTests/ChangeLog	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/LayoutTests/ChangeLog	2018-03-23 11:49:04 UTC (rev 229891)
@@ -1,3 +1,14 @@
+2018-03-23  Antoine Quint  <grao...@apple.com>
+
+        [Web Animations] infinite repeat counts aren't reflected for CSS Animations
+        https://bugs.webkit.org/show_bug.cgi?id=183932
+
+        Reviewed by Dean Jackson.
+
+        One of the Mozilla tests now passes completely and reliably.
+
+        * TestExpectations:
+
 2018-03-22  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed

Modified: trunk/LayoutTests/TestExpectations (229890 => 229891)


--- trunk/LayoutTests/TestExpectations	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/LayoutTests/TestExpectations	2018-03-23 11:49:04 UTC (rev 229891)
@@ -1709,7 +1709,6 @@
 webkit.org/b/183817 imported/mozilla/css-animations/test_animation-computed-timing.html [ Pass Failure Timeout ]
 webkit.org/b/183818 imported/mozilla/css-animations/test_pseudoElement-get-animations.html [ Pass Failure Timeout ]
 webkit.org/b/183819 imported/mozilla/css-animations/test_animation-currenttime.html [ Pass Failure Timeout ]
-webkit.org/b/183820 imported/mozilla/css-animations/test_animation-finish.html [ Pass Failure Timeout ]
 webkit.org/b/183821 imported/mozilla/css-transitions/test_animation-cancel.html [ Pass Failure Timeout ]
 webkit.org/b/183822 imported/mozilla/css-animations/test_animation-finished.html [ Pass Failure Timeout ]
 webkit.org/b/183823 imported/mozilla/css-transitions/test_animation-computed-timing.html [ Pass Failure Timeout ]

Modified: trunk/LayoutTests/imported/mozilla/ChangeLog (229890 => 229891)


--- trunk/LayoutTests/imported/mozilla/ChangeLog	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/LayoutTests/imported/mozilla/ChangeLog	2018-03-23 11:49:04 UTC (rev 229891)
@@ -1,3 +1,15 @@
+2018-03-23  Antoine Quint  <grao...@apple.com>
+
+        [Web Animations] infinite repeat counts aren't reflected for CSS Animations
+        https://bugs.webkit.org/show_bug.cgi?id=183932
+
+        Reviewed by Dean Jackson.
+
+        Record progressions of Mozilla tests.
+
+        * css-animations/test_animation-computed-timing-expected.txt:
+        * css-animations/test_animation-finish-expected.txt:
+
 2018-03-22  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed

Modified: trunk/LayoutTests/imported/mozilla/css-animations/test_animation-computed-timing-expected.txt (229890 => 229891)


--- trunk/LayoutTests/imported/mozilla/css-animations/test_animation-computed-timing-expected.txt	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/LayoutTests/imported/mozilla/css-animations/test_animation-computed-timing-expected.txt	2018-03-23 11:49:04 UTC (rev 229891)
@@ -7,17 +7,17 @@
 PASS iterationStart of a new animation 
 PASS iterations of a new animation 
 PASS iterations of a finitely repeating animation 
-FAIL iterations of an infinitely repeating animation assert_equals: Initial value of iterations expected Infinity but got 1
+PASS iterations of an infinitely repeating animation 
 PASS duration of a new animation 
 PASS direction of a new animation 
 FAIL easing of a new animation assert_equals: Initial value of easing expected "linear" but got "ease"
 PASS endTime of an new animation 
 PASS endTime of an animation with a negative delay 
-FAIL endTime of an infinitely repeating animation undefined is not an object (evaluating 'div.getAnimations()[0].effect')
+PASS endTime of an infinitely repeating animation 
 PASS endTime of an infinitely repeating zero-duration animation 
 PASS endTime of an animation that finishes before its startTime 
 PASS activeDuration of a new animation 
-FAIL activeDuration of an infinitely repeating animation assert_equals: Initial value of activeDuration expected Infinity but got 100000
+PASS activeDuration of an infinitely repeating animation 
 PASS activeDuration of an infinitely repeating zero-duration animation 
 PASS activeDuration of an animation with zero iterations 
 PASS localTime of a new animation 
@@ -36,7 +36,7 @@
 PASS progress of a non-integral repeating zero-duration animation with alternate-reverse direction 
 PASS currentIteration of a new animation with no backwards fill is unresolved in before phase 
 PASS currentIteration of a new animation is zero 
-FAIL currentIteration of an infinitely repeating zero-duration animation assert_equals: Initial value of currentIteration in after phase expected Infinity but got 0
+PASS currentIteration of an infinitely repeating zero-duration animation 
 PASS currentIteration of a finitely repeating zero-duration animation 
 PASS currentIteration of an animation with a non-integral iteration count 
 PASS currentIteration of an animation with an integral iteration count 

Modified: trunk/LayoutTests/imported/mozilla/css-animations/test_animation-finish-expected.txt (229890 => 229891)


--- trunk/LayoutTests/imported/mozilla/css-animations/test_animation-finish-expected.txt	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/LayoutTests/imported/mozilla/css-animations/test_animation-finish-expected.txt	2018-03-23 11:49:04 UTC (rev 229891)
@@ -1,5 +1,5 @@
 
-FAIL Test exceptions when finishing infinite animation assert_true: Expect InvalidStateError exception trying to finish an infinite animation expected true got false
+PASS Test exceptions when finishing infinite animation 
 PASS Test finish() while paused 
 PASS Test finish() while pause-pending with positive playbackRate 
 PASS Test finish() while pause-pending with negative playbackRate 

Modified: trunk/Source/WebCore/ChangeLog (229890 => 229891)


--- trunk/Source/WebCore/ChangeLog	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/Source/WebCore/ChangeLog	2018-03-23 11:49:04 UTC (rev 229891)
@@ -1,3 +1,16 @@
+2018-03-23  Antoine Quint  <grao...@apple.com>
+
+        [Web Animations] infinite repeat counts aren't reflected for CSS Animations
+        https://bugs.webkit.org/show_bug.cgi?id=183932
+
+        Reviewed by Dean Jackson.
+
+        The "infinite" value for animation-repeat-count is reflected as a special value which resolves to -1. We need to check
+        for this special value before setting the iterations count on the AnimationEffectTimingReadOnly object.
+
+        * animation/CSSAnimation.cpp:
+        (WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
+
 2018-03-22  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed

Modified: trunk/Source/WebCore/animation/CSSAnimation.cpp (229890 => 229891)


--- trunk/Source/WebCore/animation/CSSAnimation.cpp	2018-03-23 11:47:26 UTC (rev 229890)
+++ trunk/Source/WebCore/animation/CSSAnimation.cpp	2018-03-23 11:49:04 UTC (rev 229891)
@@ -90,7 +90,8 @@
         break;
     }
 
-    timing->setIterations(animation.iterationCount());
+    auto iterationCount = animation.iterationCount();
+    timing->setIterations(iterationCount == Animation::IterationCountInfinite ? std::numeric_limits<double>::infinity() : iterationCount);
 
     // Synchronize the play state
     if (backingAnimation().playState() == AnimPlayStatePlaying && playState() == WebAnimation::PlayState::Paused)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to