transitions/default-timing-function.html started failing recently. https://results.webkit.org/?suite=layout-tests&test=transitions%2Fdefault-timing-function.html e.g.: https://build.webkit.org/results/Apple%20Mojave%20Debug%20WK1%20(Tests)/r254042%20(7779)/results.html
Diff: --- /Volumes/Data/slave/mojave-debug-tests-wk1/build/layout-test-results/transitions/default-timing-function-expected.txt +++ /Volumes/Data/slave/mojave-debug-tests-wk1/build/layout-test-results/transitions/default-timing-function-actual.txt @@ -14,7 +14,7 @@ RenderBlock (relative positioned) {DIV} at (0,0) size 784x200 layer at (330,8) size 100x200 RenderBlock (positioned) {DIV} at (322,0) size 100x200 [bgcolor=#FF0000] -layer at (329,8) size 100x100 +layer at (336,8) size 100x100 RenderBlock (relative positioned) {DIV} at (0,0) size 100x100 [bgcolor=#008000] layer at (8,108) size 100x100 RenderBlock (relative positioned) {DIV} at (0,100) size 100x100 [bgcolor=#008000]
As per results database, it seems to have started failing after https://trac.webkit.org/changeset/254042/webkit
<rdar://problem/58343509>
The test is now timing-sensitive and gives different results each time, despite using the pause API. Investigating how to fix this.
Pausing an animation doesn't seem to stop it from running: animations may start for document 0x132b8de50 blending left from 0px to 400px at 0 -> 0px blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) GraphicsLayerCA 0x1355f0840 id 4 addAnimation 0x135426d80 keyframe-effect-160e7b6d-da78-4392-8523-3e4b6666f372 duration 1.00 (can be accelerated 1) blending left from 0px to 400px at 0 -> 0px blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0 -> translateX(0px, 0px, 0px) GraphicsLayerCA 0x1355f0840 id 4 platformCALayerAnimationStarted keyframe-effect-160e7b6d-da78-4392-8523-3e4b6666f372_1_0_0 CSSAnimationController 0x1354ff650 notifyAnimationStarted on renderer 0x132b8fb90, time=3019.838396 CSSAnimationControllerPrivate 0x13549d140 receivedStartTimeResponse 3019.838396 WebAnimation 0x132b8fdf0 setCurrentTime 0.50s WebAnimation 0x132b8fdf0 silentlySetCurrentTime 0.50s blending left from 0px to 400px at 0.80 -> 320.97px WebAnimation 0x132b8fdf0 pause (current time is 500.00) blending left from 0px to 400px at 0.80 -> 320.97px blending transform from to translateX(400px, 0px, 0px) at 0.01 -> translateX(3.28px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.01 -> translateX(3.28px, 0px, 0px) WebAnimation 0x132bf0160 setCurrentTime 0.50s WebAnimation 0x132bf0160 silentlySetCurrentTime 0.50s blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) WebAnimation 0x132bf0160 pause (current time is 500.00) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.80 -> translateX(320.97px, 0px, 0px) GraphicsLayerCA 0x1355f0840 id 4 seekAnimation keyframe-effect-160e7b6d-da78-4392-8523-3e4b6666f372 to 0.53 (is running 1) GraphicsLayerCA 0x1355f0840 id 4 pauseAnimation keyframe-effect-160e7b6d-da78-4392-8523-3e4b6666f372 (is running 1) blending left from 0px to 400px at 0.83 -> 330.46px blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) blending transform from to translateX(400px, 0px, 0px) at 0.83 -> translateX(330.46px, 0px, 0px) GraphicsLayerCA 0x1355f0840 id 4 platformCALayerAnimationStarted keyframe-effect-160e7b6d-da78-4392-8523-3e4b6666f372_1_0_0 CSSAnimationController 0x1354ff650 notifyAnimationStarted on renderer 0x132b8fb90, time=3019.885259 CSSAnimationControllerPrivate 0x13549d140 receivedStartTimeResponse 3019.885259
So confused: animations may start for document 0x132bf9e50 blending left from 0px to 400px at 0 -> 0px blending left from 0px to 400px at 0 -> 0px WebAnimation 0x132bfbdf0 setCurrentTime 0.50s WebAnimation 0x132bfbdf0 silentlySetCurrentTime 0.50s blending left from 0px to 400px at 0.80 -> 320.97px WebAnimation 0x132bfbdf0 pause (current time is 0.50s) blending left from 0px to 400px at 0.80 -> 320.97px WebAnimation 0x132bfbdf0 runPendingPauseTask (current time is 0.52s) blending left from 0px to 400px at 0.82 -> 327.52px
At the end of WebAnimation::runPendingPauseTask(), the animation is not suspended, and has a playback rate of 1, which seems wrong.
Antoine, I don't get why AnimationEffect::getComputedTiming() seems to continue to allow time to move forward on an effect whose animation is paused. Also, when we have tests that do: animation.currentTime = time * 1000; animation.pause(); the pause is async, so we end up pausing a bit later.
I'm debugging transitions/default-timing-function.html is after commenting out the transform stuff so only the 'left' animation is running. Logging patch attached.
Created attachment 386901 [details] Animations logging etc
Created attachment 387001 [details] Patch
Comment on attachment 387001 [details] Patch Clearing flags on attachment: 387001 Committed r254146: <https://trac.webkit.org/changeset/254146>
All reviewed patches have been landed. Closing bug.