[Web Animations] Update the timing model when pending tasks schedule changes
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Mar 2018 20:29:57 +0000 (20:29 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Mar 2018 20:29:57 +0000 (20:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183785

Patch by Antoine Quint <graouts@apple.com> on 2018-03-20
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Record a progression now that we correctly invalidate effects as their pending play
or pause task schedule changes. Setting an animation's effect resets pending tasks.

* web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt:

Source/WebCore:

Changing the time at which a pending play or pause task is scheduled changes the pending
state of the animation and thus should notify that the timing model has changed and invalidate
the effect.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setTimeToRunPendingPlayTask):
(WebCore::WebAnimation::setTimeToRunPendingPauseTask):
(WebCore::WebAnimation::updatePendingTasks):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/animation/WebAnimation.cpp

index 71c6ed6..c7fffdd 100644 (file)
@@ -1,3 +1,15 @@
+2018-03-20  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Update the timing model when pending tasks schedule changes
+        https://bugs.webkit.org/show_bug.cgi?id=183785
+
+        Reviewed by Dean Jackson.
+
+        Record a progression now that we correctly invalidate effects as their pending play
+        or pause task schedule changes. Setting an animation's effect resets pending tasks. 
+
+        * web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt:
+
 2018-03-16  Claudio Saavedra  <csaavedra@igalia.com>
 
         Unreviewed rebaseline
index de2c4d4..d942070 100644 (file)
@@ -1,4 +1,4 @@
 
 PASS effect is set correctly. 
-FAIL Clearing and setting Animation.effect should update the computed style of the target element assert_equals: animation no longer has an effect expected "auto" but got "100px"
+PASS Clearing and setting Animation.effect should update the computed style of the target element 
 
index c87acf3..24ebe5f 100644 (file)
@@ -1,3 +1,19 @@
+2018-03-20  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Update the timing model when pending tasks schedule changes
+        https://bugs.webkit.org/show_bug.cgi?id=183785
+
+        Reviewed by Dean Jackson.
+
+        Changing the time at which a pending play or pause task is scheduled changes the pending
+        state of the animation and thus should notify that the timing model has changed and invalidate
+        the effect.
+
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::setTimeToRunPendingPlayTask):
+        (WebCore::WebAnimation::setTimeToRunPendingPauseTask):
+        (WebCore::WebAnimation::updatePendingTasks):
+
 2018-03-20  Tim Horton  <timothy_horton@apple.com>
 
         Add and adopt WK_PLATFORM_NAME and adjust default feature defines
index 9570fc6..407aea7 100644 (file)
@@ -784,6 +784,9 @@ ExceptionOr<void> WebAnimation::play(AutoRewind autoRewind)
 
 void WebAnimation::setTimeToRunPendingPlayTask(TimeToRunPendingTask timeToRunPendingTask)
 {
+    if (m_timeToRunPendingPlayTask == timeToRunPendingTask)
+        return;
+
     m_timeToRunPendingPlayTask = timeToRunPendingTask;
     updatePendingTasks();
 }
@@ -909,6 +912,9 @@ ExceptionOr<void> WebAnimation::reverse()
 
 void WebAnimation::setTimeToRunPendingPauseTask(TimeToRunPendingTask timeToRunPendingTask)
 {
+    if (m_timeToRunPendingPauseTask == timeToRunPendingTask)
+        return;
+
     m_timeToRunPendingPauseTask = timeToRunPendingTask;
     updatePendingTasks();
 }
@@ -964,6 +970,8 @@ void WebAnimation::updatePendingTasks()
             });
         }
     }
+
+    timingModelDidChange();
 }
 
 Seconds WebAnimation::timeToNextRequiredTick(Seconds timelineTime) const