Bug 29984 - If visibility changes while an accelerated animation is running, element jumps around
Summary: If visibility changes while an accelerated animation is running, element jump...
Status: REOPENED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
: 64166 (view as bug list)
Depends on: 71164
Blocks:
  Show dependency treegraph
 
Reported: 2009-10-01 14:57 PDT by Simon Fraser (smfr)
Modified: 2015-03-17 10:33 PDT (History)
6 users (show)

See Also:


Attachments
Testcase (1.34 KB, text/html)
2009-10-01 15:00 PDT, Simon Fraser (smfr)
no flags Details
Patch (20.92 KB, patch)
2009-10-12 17:30 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
WIP patch (28.34 KB, patch)
2009-10-15 16:00 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
Patch (13.08 KB, patch)
2011-10-28 16:03 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2009-10-01 14:57:32 PDT
The attached testcase changes 'visibility' in the middle of an accelerated animation; this causes the element to jump around incorrectly.
Comment 1 Simon Fraser (smfr) 2009-10-01 14:57:53 PDT
<rdar://problem/7269294>
Comment 2 Simon Fraser (smfr) 2009-10-01 15:00:16 PDT
Created attachment 40479 [details]
Testcase
Comment 3 Simon Fraser (smfr) 2009-10-06 21:57:52 PDT
The issue here is that we're setting animations on GraphicsLayer that are not in the tree, because the RenderLayer z-order list logic does not include layers with visiblility:hidden. And because the layers are not in the tree, we get no started callback, so this breaks all subsequent animation (see bug 26770).
Comment 4 Simon Fraser (smfr) 2009-10-12 17:30:02 PDT
Created attachment 41070 [details]
Patch
Comment 5 Simon Fraser (smfr) 2009-10-15 16:00:54 PDT
Created attachment 41249 [details]
WIP patch

Stashing work in progress here. There are still a number of issues with this patch.
Comment 6 Simon Fraser (smfr) 2011-07-11 16:42:17 PDT
*** Bug 64166 has been marked as a duplicate of this bug. ***
Comment 7 Simon Fraser (smfr) 2011-10-27 14:45:13 PDT
Some visibility issues fixed by the patch in bug 38829.
Comment 8 Simon Fraser (smfr) 2011-10-28 16:03:48 PDT
Created attachment 112934 [details]
Patch
Comment 9 Chris Marrin 2011-10-28 16:14:26 PDT
Comment on attachment 112934 [details]
Patch

r=me
Comment 10 Simon Fraser (smfr) 2011-10-28 16:18:49 PDT
http://trac.webkit.org/changeset/98776
Comment 11 Simon Fraser (smfr) 2011-10-28 17:33:41 PDT
This caused lots of assertions, rolling out.
Comment 12 Simon Fraser (smfr) 2011-11-02 16:32:52 PDT
This patch has a problem. RenderLayerCompositor::computeCompositingRequirements() calls updateBacking() which can enter compositing mode. This happens in the middle of walking layers via the z-order tree, but invalidates the z-order trees. Oops.
Comment 13 Simon Fraser (smfr) 2011-11-02 16:56:41 PDT
For iframes and video we may make them compositing during computeCompositingRequirements(), not just as a result of RenderLayer::styleChanged.
Comment 14 James Robinson 2011-11-03 17:30:26 PDT
Was it rolled out? I don't see a rollout revision on the bug.
Comment 15 Simon Fraser (smfr) 2011-11-03 17:32:49 PDT
It was, not sure why sheriffbot didn't note that here. Rollout was bug 71164.