New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 686091 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 672457



Sign in to add a comment

InspectorAnimationAgent does not detect cancel after start

Project Member Reported by smcgruer@chromium.org, Jan 27 2017

Issue description

In https://codereview.chromium.org/1422713012 , the behavior of InspectorAnimationAgent was changed to try and report all animation state changes. However the CL had an accidental (I believe) side-effect of ignoring 'cancel' events for any animation that has already been started.

This behavior then caused inspector-protocol/animation/animation-empty-transition-cancel.html to break when https://codereview.chromium.org/2647533002/ (unsubmitted) caused the lifecycle to change such that compositing was cleaned (and the animation starts for a split-second) before the animation was cancelled. However you can also reproduce it by simply requesting an animation frame in the same test which also lets compositing run.
 
Blocking: 672457
Labels: -Pri-3 Pri-2

Comment 3 by tkent@chromium.org, Jan 30 2017

Components: Platform>Apps>DevTools
Status: Started (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e04864cab7755bdc01abf0431cfd825d488b309c

commit e04864cab7755bdc01abf0431cfd825d488b309c
Author: smcgruer <smcgruer@chromium.org>
Date: Mon Jan 30 21:38:42 2017

Detect/report animations that are cancelled after they start.

Previously, we were early-exiting from |animationPlayStateChange| if an
animation was contained in |m_idToAnimation|. However, this means that
we miss cancel events for animations that have already been started,
since the 'start' event causes them to be placed in |m_idToAnimation|.

BUG= 686091 

Review-Url: https://codereview.chromium.org/2656273003
Cr-Commit-Position: refs/heads/master@{#447074}

[add] https://crrev.com/e04864cab7755bdc01abf0431cfd825d488b309c/third_party/WebKit/LayoutTests/inspector-protocol/animation/animation-start-cancel-expected.txt
[add] https://crrev.com/e04864cab7755bdc01abf0431cfd825d488b309c/third_party/WebKit/LayoutTests/inspector-protocol/animation/animation-start-cancel.html
[modify] https://crrev.com/e04864cab7755bdc01abf0431cfd825d488b309c/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp

Status: Fixed (was: Started)
Labels: ReleaseBlock-Stable M-57
Marking release block stable because blocked  issue 672457  is also release block stable, so we'll have to merge this one too.
Labels: Merge-Request-57

Comment 9 by gov...@chromium.org, Jan 31 2017

Is this applicable to All OSes or any specific OS?
Labels: OS-All
All; apologies for forgetting to mark the checkbox :)
Project Member

Comment 11 by sheriffbot@chromium.org, Jan 31 2017

Labels: -Merge-Request-57 Hotlist-Merge-Approved Merge-Approved-57
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Please merge your change to M57 branch 2987 ASAP (latest before 5:00 PM PT today, Wednesday) so we can pick it up for M57 Beta promotion release this week. Thank you.
Labels: -Merge-Approved-57 merge-merged-2987
Per comment #12, this is already merged to M57.
Cc: brajkumar@chromium.org
Labels: Needs-Feedback
smcgruer@ Could you please let us know is there any manual repro steps available to verify this issue from Chrome-TE end.

Thanks!
brajkumar@ I'm not sure if there are any manual steps to verify this, it was discovered via a layout test issue.

suzyh@ Do you know if there should be anything Chrome-TE could test? I'm actually surprised to find that if I load up http://output.jsbin.com/gecagud in canary and do animation tracing, the trace still shows that the animation took 10s whilst the actual visual is as expected (near instant cancellation). But perhaps that isn't directly linked to the InspectorAnimationAgent code that was fixed here.
Cc: samli@chromium.org
+samli for more DevTools-experienced input

smcgruer: Could we just create a layout-test-style page that logs to console instead of using InspectorTest, and use that to manually verify? I'm not sure what the procedures are for Chrome-TE and what kind of test we need to provide.
I suspect the example in #16 is WAI. The timeline just shows the declarative properties of the animation, showing procedural changes to the animation (in this case cancelling) in its timeline seems like it would be out of scope for the tool to me.

Alternate example to illustrate:
var animation = target.animate({opacity: [0, 1]}, 10000);
setTimeout(() => animation.cancel(), 1000);
The animation would play for 1s but the timeline would capture it as having 10s duration.
Yep, Alan is correct. Visually representing an animation's actual state is extremely complex.
 - the same timeline for an animation is reused for multiple runs of the same animation
 - imagine representing a something which pauses, then stops, then pauses...
 - its designed to simulate a composer's view. Think of something like a video editor. Playback is different to definition.
Alrighty, in that case then there's really nothing for Chrome-TE to verify here. The verification was the layout test itself.

Thanks for the input all.

Sign in to add a comment