Bug 205804 - transitions/default-timing-function.html is failing
Summary: transitions/default-timing-function.html is failing
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Antoine Quint
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-01-06 08:48 PST by Aakash Jain
Modified: 2020-01-07 12:38 PST (History)
6 users (show)

See Also:


Attachments
Animations logging etc (11.00 KB, text/plain)
2020-01-06 15:39 PST, Simon Fraser (smfr)
no flags Details
Patch (2.86 KB, patch)
2020-01-07 11:20 PST, Antoine Quint
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Aakash Jain 2020-01-06 08:49:01 PST
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]
Comment 2 Aakash Jain 2020-01-06 08:50:48 PST
As per results database, it seems to have started failing after https://trac.webkit.org/changeset/254042/webkit
Comment 3 Radar WebKit Bug Importer 2020-01-06 09:16:52 PST
<rdar://problem/58343509>
Comment 4 Simon Fraser (smfr) 2020-01-06 11:34:29 PST
The test is now timing-sensitive and gives different results each time, despite using the pause API. Investigating how to fix this.
Comment 5 Simon Fraser (smfr) 2020-01-06 13:53:29 PST
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
Comment 6 Simon Fraser (smfr) 2020-01-06 15:22:19 PST
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
Comment 7 Simon Fraser (smfr) 2020-01-06 15:23:38 PST
At the end of WebAnimation::runPendingPauseTask(), the animation is not suspended, and has a playback rate of 1, which seems wrong.
Comment 8 Simon Fraser (smfr) 2020-01-06 15:38:19 PST
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.
Comment 9 Simon Fraser (smfr) 2020-01-06 15:39:09 PST
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.
Comment 10 Simon Fraser (smfr) 2020-01-06 15:39:35 PST
Created attachment 386901 [details]
Animations logging etc
Comment 11 Antoine Quint 2020-01-07 11:20:30 PST
Created attachment 387001 [details]
Patch
Comment 12 WebKit Commit Bot 2020-01-07 12:38:51 PST
Comment on attachment 387001 [details]
Patch

Clearing flags on attachment: 387001

Committed r254146: <https://trac.webkit.org/changeset/254146>
Comment 13 WebKit Commit Bot 2020-01-07 12:38:52 PST
All reviewed patches have been landed.  Closing bug.