REGRESSION (r168119): Album flipping animation doesn’t work
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Aug 2014 23:05:34 +0000 (23:05 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Aug 2014 23:05:34 +0000 (23:05 +0000)
commita1f93a89c0da05cac88fb259ea38cb0073a2f966
treeae4cba26d4b687a151253743ed13d3e5e8e5f7f2
parenta7e65efba2faa6de098855e166354ca68a1287ea
REGRESSION (r168119): Album flipping animation doesn’t work
https://bugs.webkit.org/show_bug.cgi?id=132801
Source/WebCore:

<rdar://problem/16878497>, <rdar://problem/17908085>

Reviewed by Dean Jackson.

In r168119 I avoided creating backing store for backface-visibility:hidden unless
some ancestor was 3d-transformed. However, when starting transitions or animations
that apply transforms, we don't do a layout, and therefore don't update the RenderLayer
flags that mark an ancestor as having a transform. This broke various content which
used backface-visibility:hidden for "flip" animations.

Make a low-risk fix that looks for the pattern of CSS properties used for flipping,
making a compositing layer for backface-visibility:hidden if the stacking context element
has transform-style: preserve-3d.

Test: compositing/backing/backface-visibility-flip.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):

LayoutTests:

Reviewed by Dean Jackson.

Test that starts a transform animation and dumps layers.

* compositing/backing/backface-visibility-flip-expected.txt: Added.
* compositing/backing/backface-visibility-flip.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@172183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/compositing/backing/backface-visibility-flip-expected.txt [new file with mode: 0644]
LayoutTests/compositing/backing/backface-visibility-flip.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderLayerCompositor.cpp