RenderLayerCompositor::updateCompositingLayers() ends up calling code that relies on the current state of animations, via calls to RenderLayer::currentTransform(). This is called while mapping layer bounds to absolute coordinates, for overlap testing. We should treat the entire compositing layer update as one animation batch (begin/end animation update). Without this, it's impossible to compare the results of coordinate mapping via two different code paths in ASSERTs. It seems reasonable to do anyway.
Created attachment 143356 [details] Patch
Comment on attachment 143356 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=143356&action=review > Source/WebCore/ChangeLog:26 > + to cover over calls to recalcStyle which might need this (87159). over-calls? > Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1325 > + AnimationUpdateBlock animationBlock(renderer->animation()); I like animationUpdateBlock as the var names through the patch, but not a big deal. > Source/WebCore/rendering/RenderLayerCompositor.cpp:354 > + Frame* frame = m_renderView->frameView()->frame(); > + AnimationUpdateBlock animationBlock(frame->animation()); One line? no need for frame elsewhere?
http://trac.webkit.org/changeset/118052