Missing layer content when animating elements on-screen
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Nov 2017 01:50:14 +0000 (01:50 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Nov 2017 01:50:14 +0000 (01:50 +0000)
commitec2b7713a72d2e924c0bb1eb92700a1564ccc373
treeb49b807fe87966187972e67c5b09c447f12bdf2f
parentdec35a389afaa04a3e36f65d6ad6a230923b9563
Missing layer content when animating elements on-screen
https://bugs.webkit.org/show_bug.cgi?id=180178
rdar://problem/34923438

Reviewed by Dean Jackson.

If a delayed animation starts, that animates layers from offscreen, then we would fail
to run the logic that ensures that those layers have backing store.

Fix by ensuring that if any layer starts or ends a transform animation, we re-evaluate
backing store attachment on all its descendants.

I tried to make a test, but layer flushing is timing-sensitive and the test would have taken
5s, and not been reliable. There's a manual test in the bug.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
* platform/graphics/ca/GraphicsLayerCA.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h