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

Issue 592803 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression

Blocking:
issue 389497



Sign in to add a comment

Composited animation is blocked by the main thread

Project Member Reported by paulir...@chromium.org, Mar 7 2016

Issue description

Repro: https://output.jsbin.com/lononi/2/quiet

This is a layer-promoted css animation (transforms only) loading spinner. It seems to hit all our requirements for being composited and not needing the main thread.

However in both Stable and ToT, it is dependent on the main thread and the animation pauses if main thread is not available.  

This is a regression. rev 352860 did not show this behavior.


Developers need a way to show a loading spinner while their webapp is loading, and this is our recommendation. Without this working, are not considered a PWA.
 
Screen Shot 2016-03-07 at 3.43.45 PM.png
70.0 KB View Download
trace_composited-anim-blocked-on-main_thread.json.gz
6.1 MB Download
Status: Untriaged (was: Assigned)
This was originally reported here: http://stackoverflow.com/questions/35851897/google-chrome-compositor-driven-animation-affected-by-jam-in-main-thread/35856515#35856515
The developer indicates that position:absolute is what triggers the bug.

------------------

I did a bisect:

You are probably looking for a change made after 355973 (known good), but no later than 356044 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/ee635cd21d022ed6737b2ea01145c0e84f28db48..8eb7906198cc0be635c92bab021b5a04c4d2c11b
Blocking: 389497
Cc: loyso@chromium.org
Owner: dstockwell@chromium.org
suspecting https://codereview.chromium.org/1423893002 "Web Animations: Suppress compositor animations for transform on inline elements"

though also of interest is https://codereview.chromium.org/1410873003
Cc: aerotwist@chromium.org
Cc: -loyso@chromium.org
Labels: -Type-Bug Type-Bug-Regression
Owner: loyso@chromium.org
Status: Assigned (was: Untriaged)
Summary: Composited animation is blocked by the main thread (was: [regression] Composited animation is blocked by the main thread)
Labels: Performance
Owner: dstockwell@chromium.org
Status: Started (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Mar 8 2016

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

commit 1c1129d2fd8c4728671cd4f611083de6557ac5af
Author: dstockwell <dstockwell@chromium.org>
Date: Tue Mar 08 04:47:34 2016

Web Animations: Dont suppress compositor transform for inline-block

Transform is applied to display:inline-block/inline-transform so there's
no need to suppress compositor animations here.

BUG= 592803 

Review URL: https://codereview.chromium.org/1775743002

Cr-Commit-Position: refs/heads/master@{#379744}

[add] https://crrev.com/1c1129d2fd8c4728671cd4f611083de6557ac5af/third_party/WebKit/LayoutTests/virtual/threaded/animations/inline-block-transform.html
[modify] https://crrev.com/1c1129d2fd8c4728671cd4f611083de6557ac5af/third_party/WebKit/Source/core/animation/CompositorAnimations.cpp

Status: Fixed (was: Started)
Should we merge this performance regression?
Was just thinking the same thing. I'd prefer to merge to 50.
Status: Started (was: Fixed)
We'll give it a few days in canary first.
Components: -Internals>Compositing>Animation
Labels: Merge-Request-50

Comment 14 by tin...@google.com, Mar 11 2016

Labels: -Merge-Request-50 Merge-Approved-50 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M50 (branch: 2661)
Please try to merge your change to M50 branch 2661 ASAP if you think it is a safe merge as we're close to M50 Beta candidate cut for next week. Thank you.

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 14 2016

Labels: -merge-approved-50 merge-merged-2661
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d73bf0ba869dd67cee7785570a5c91248a89ac3

commit 4d73bf0ba869dd67cee7785570a5c91248a89ac3
Author: Douglas Stockwell <dstockwell@chromium.org>
Date: Mon Mar 14 01:52:39 2016

Web Animations: Dont suppress compositor transform for inline-block

Transform is applied to display:inline-block/inline-transform so there's
no need to suppress compositor animations here.

BUG= 592803 

Review URL: https://codereview.chromium.org/1775743002

Cr-Commit-Position: refs/heads/master@{#379744}
(cherry picked from commit 1c1129d2fd8c4728671cd4f611083de6557ac5af)

Review URL: https://codereview.chromium.org/1789303004 .

Cr-Commit-Position: refs/branch-heads/2661@{#210}
Cr-Branched-From: ef6f6ae5e4c96622286b563658d5cd62a6cf1197-refs/heads/master@{#378081}

[add] https://crrev.com/4d73bf0ba869dd67cee7785570a5c91248a89ac3/third_party/WebKit/LayoutTests/virtual/threaded/animations/inline-block-transform.html
[modify] https://crrev.com/4d73bf0ba869dd67cee7785570a5c91248a89ac3/third_party/WebKit/Source/core/animation/CompositorAnimations.cpp

Status: Fixed (was: Started)
Nice! Thanks for the quick action!

Comment 19 by ajha@chromium.org, Mar 16 2016

Labels: TE-Verified-M50 TE-Verified-50.0.2661.37
Verified the merge on the latest M-50(50.0.2661.37) on Windows-7, Mac OS 10.11.3 and Linux Ubuntu 14.04. This is working as intended and animation doesn't pause & plays continuously.

Thank you!


 Issue 598679  has been merged into this issue.

Sign in to add a comment