Bug 29984

Summary: If visibility changes while an accelerated animation is running, element jumps around
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: REOPENED    
Severity: Normal CC: cmarrin, jamesr, j.isorce, mitz, simon.fraser, wavded
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on: 71164    
Bug Blocks:    
Attachments:
Description Flags
Testcase
none
Patch
none
WIP patch
none
Patch none

Simon Fraser (smfr)
Reported 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.
Attachments
Testcase (1.34 KB, text/html)
2009-10-01 15:00 PDT, Simon Fraser (smfr)
no flags
Patch (20.92 KB, patch)
2009-10-12 17:30 PDT, Simon Fraser (smfr)
no flags
WIP patch (28.34 KB, patch)
2009-10-15 16:00 PDT, Simon Fraser (smfr)
no flags
Patch (13.08 KB, patch)
2011-10-28 16:03 PDT, Simon Fraser (smfr)
no flags
Simon Fraser (smfr)
Comment 1 2009-10-01 14:57:53 PDT
Simon Fraser (smfr)
Comment 2 2009-10-01 15:00:16 PDT
Created attachment 40479 [details] Testcase
Simon Fraser (smfr)
Comment 3 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).
Simon Fraser (smfr)
Comment 4 2009-10-12 17:30:02 PDT
Simon Fraser (smfr)
Comment 5 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.
Simon Fraser (smfr)
Comment 6 2011-07-11 16:42:17 PDT
*** Bug 64166 has been marked as a duplicate of this bug. ***
Simon Fraser (smfr)
Comment 7 2011-10-27 14:45:13 PDT
Some visibility issues fixed by the patch in bug 38829.
Simon Fraser (smfr)
Comment 8 2011-10-28 16:03:48 PDT
Chris Marrin
Comment 9 2011-10-28 16:14:26 PDT
Comment on attachment 112934 [details] Patch r=me
Simon Fraser (smfr)
Comment 10 2011-10-28 16:18:49 PDT
Simon Fraser (smfr)
Comment 11 2011-10-28 17:33:41 PDT
This caused lots of assertions, rolling out.
Simon Fraser (smfr)
Comment 12 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.
Simon Fraser (smfr)
Comment 13 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.
James Robinson
Comment 14 2011-11-03 17:30:26 PDT
Was it rolled out? I don't see a rollout revision on the bug.
Simon Fraser (smfr)
Comment 15 2011-11-03 17:32:49 PDT
It was, not sure why sheriffbot didn't note that here. Rollout was bug 71164.
Note You need to log in before you can comment on or make changes to this bug.