[Webkit-unassigned] [Bug 207361] New: There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Feb 6 15:02:21 PST 2020
https://bugs.webkit.org/show_bug.cgi?id=207361
Bug ID: 207361
Summary: There's an event loop cycle between an animation
finishing, and it being removed from GraphicsLayerCA
Product: WebKit
Version: Safari Technology Preview
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Animations
Assignee: webkit-unassigned at lists.webkit.org
Reporter: simon.fraser at apple.com
CC: dino at apple.com
For the rendering update where an animation finishes, Document::updateAnimationsAndSendEvents() runs and animation->tick() changes the state to Finished. isRelevant() is set to false.
However. at:
if (!animation->isRelevant() && !animation->needsTick())
needsTick() is still true, so we don't add the animation to animationsToRemove.
That results in one frame where timeline->isRunningAcceleratedAnimationOnRenderer(renderer(), CSSPropertyTransform) returns false, but we haven't yet removed the animation from the GraphicsLayer, so GraphicsLayer::isRunningTransformAnimation() returns true. In this same frame, RenderLayerBacking::updateGeometry() has cleared the animation extent, so we're left with a GraphicsLayer that always keeps its backing store attached because it thinks it's running a transform animation with unknown extent.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20200206/12c082cc/attachment-0001.htm>
More information about the webkit-unassigned
mailing list