Some pages have elements that go into and out of compositing layers when animations/transitions on unrelated elements run, because we turn off overlap testing if we see an accelerated transform animation. This unwanted switching into/out of compositing layers can cause flashing in some cases. We should try to avoid it. One site that shows this is http://t.aol.com with an iPad user agent.
<rdar://problem/12000100>
Created attachment 248680 [details] Patch
Comment on attachment 248680 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=248680&action=review > Source/WebCore/page/animation/AnimationBase.cpp:742 > + TransformationMatrix::Decomposed2Type toDecomp; > + transform.decompose2(toDecomp); > + // Any rotation prevents us from using a simple start/end rect union. > + if (toDecomp.angle) > + return false; Is this the only case? I wonder if a matrix animation to/from a skew would show up with a rotation component.
Comment on attachment 248680 [details] Patch Rejecting attachment 248680 [details] from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-02', 'apply-attachment', '--no-update', '--non-interactive', 248680, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit Last 500 characters of output: iting/layer-creation/translate-scale-transition-overlap-expected.txt patching file LayoutTests/compositing/layer-creation/translate-scale-transition-overlap.html patching file LayoutTests/compositing/layer-creation/translate-transition-overlap-expected.txt patching file LayoutTests/compositing/layer-creation/translate-transition-overlap.html Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force', '--reviewer', u'Dean Jackson']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Full output: http://webkit-queues.appspot.com/results/6138387316604928
https://trac.webkit.org/r181515
This made animations/animation-on-inline-crash.html assert on all debug bots: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x0000000106efb56a WTFCrashWithSecurityImplication + 42 (Assertions.cpp:335) 1 com.apple.WebCore 0x000000010b19b5a1 WTF::match_constness<WebCore::RenderElement, WebCore::RenderBox>::type& WTF::downcast<WebCore::RenderBox, WebCore::RenderElement>(WebCore::RenderElement&) + 65 (TypeCasts.h:80) 2 com.apple.WebCore 0x000000010c0f9065 WebCore::KeyframeAnimation::computeExtentOfTransformAnimation(WebCore::LayoutRect&) const + 117 (KeyframeAnimation.cpp:206) 3 com.apple.WebCore 0x000000010afc5b78 WebCore::CompositeAnimation::computeExtentOfTransformAnimation(WebCore::LayoutRect&) const + 264 (CompositeAnimation.cpp:417) 4 com.apple.WebCore 0x000000010ad9797b WebCore::AnimationControllerPrivate::computeExtentOfAnimation(WebCore::RenderElement&, WebCore::LayoutRect&) const + 235 (AnimationController.cpp:429) 5 com.apple.WebCore 0x000000010ad98372 WebCore::AnimationController::computeExtentOfAnimation(WebCore::RenderElement&, WebCore::LayoutRect&) const + 98 (AnimationController.cpp:597)
Assertion fixed in https://trac.webkit.org/r181521