[Webkit-unassigned] [Bug 190690] New: Flakey behavior when an opacity transition ends
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Oct 17 15:02:26 PDT 2018
https://bugs.webkit.org/show_bug.cgi?id=190690
Bug ID: 190690
Summary: Flakey behavior when an opacity transition ends
Product: WebKit
Version: WebKit Nightly Build
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
Created attachment 352649
--> https://bugs.webkit.org/attachment.cgi?id=352649&action=review
Testcase
I'm having issues with a flakey test (compositing/geometry/limit-layer-bounds-opacity-transition.html; attached) when working on the patch from bug 90342.
What I see is when the transition ends, we don't always remove the RenderLayer, because in RenderBox::requiresLayer(), hasRunningAcceleratedAnimations() is true.
In the good case, the list of animated elements gets updated here:
* frame #0: 0x00000006e758ee0b WebCore`WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement(this=0x00000006fd0af300, element=0x0000000702f00138) at DocumentTimeline.cpp:429
frame #1: 0x00000006e758f05f WebCore`WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange(this=0x00000006fd0af300, animation=0x00000006fd0e3540) at DocumentTimeline.cpp:422
frame #2: 0x00000006e7597f48 WebCore`WebCore::WebAnimation::acceleratedStateDidChange(this=0x00000006fd0e3540) at WebAnimation.cpp:1091
frame #3: 0x00000006e7597e91 WebCore`WebCore::KeyframeEffectReadOnly::addPendingAcceleratedAction(this=0x00000006fd0e4630, action=Stop) at KeyframeEffectReadOnly.cpp:1253
frame #4: 0x00000006e7596b64 WebCore`WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState(this=0x00000006fd0e4630) at KeyframeEffectReadOnly.cpp:1230
frame #5: 0x00000006e759695c WebCore`WebCore::KeyframeEffectReadOnly::apply(this=0x00000006fd0e4630, targetStyle=0x0000000701a70d80) at KeyframeEffectReadOnly.cpp:982
frame #6: 0x00000006e759e4aa WebCore`WebCore::WebAnimation::resolve(this=0x00000006fd0e3540, targetStyle=0x0000000701a70d80) at WebAnimation.cpp:1074
frame #7: 0x00000006e756d829 WebCore`WebCore::CSSTransition::resolve(this=0x00000006fd0e3540, targetStyle=0x0000000701a70d80) at CSSTransition.cpp:55
frame #8: 0x00000006e758f5ee WebCore`WebCore::DocumentTimeline::resolveAnimationsForElement(this=0x00000006fd0af300, element=0x0000000702f00138, targetStyle=0x0000000701a70d80) at DocumentTimeline.cpp:465
frame #9: 0x00000006e90a132b WebCore`WebCore::Style::TreeResolver::createAnimatedElementUpdate(this=0x00007ffee6d32f00, newStyle=unique_ptr<WebCore::RenderStyle, std::__1::default_delete<WebCore::RenderStyle> > @ 0x00007ffee6d2fac0, element=0x0000000702f00138, parentChange=NoChange) at StyleTreeResolver.cpp:309
frame #10: 0x00000006e90a0547 WebCore`WebCore::Style::TreeResolver::resolveElement(this=0x00007ffee6d32f00, element=0x0000000702f00138) at StyleTreeResolver.cpp:213
frame #11: 0x00000006e90a3084 WebCore`WebCore::Style::TreeResolver::resolveComposedTree(this=0x00007ffee6d32f00) at StyleTreeResolver.cpp:498
frame #12: 0x00000006e90a48f1 WebCore`WebCore::Style::TreeResolver::resolve(this=0x00007ffee6d32f00) at StyleTreeResolver.cpp:556
frame #13: 0x00000006e7afef65 WebCore`WebCore::Document::resolveStyle(this=0x0000000701c02120, type=Normal) at Document.cpp:1904
frame #14: 0x00000006e7b00a8d WebCore`WebCore::Document::updateStyleIfNeeded(this=0x0000000701c02120) at Document.cpp:2025
frame #15: 0x00000006e758d5a8 WebCore`WebCore::DocumentTimeline::updateAnimations(this=0x00000006fd0af300) at DocumentTimeline.cpp:322
frame #16: 0x00000006e758b3e5 WebCore`WebCore::DocumentTimeline::documentAnimationSchedulerDidFire(this=0x00000006fd0af300) at DocumentTimeline.cpp:292
frame #17: 0x00000006e758b31f WebCore`WebCore::DocumentAnimationScheduler::displayRefreshFired(this=0x0000000701a7a888) at DocumentAnimationScheduler.cpp:89
In the bad case, we never even hit updateListOfElementsWithRunningAcceleratedAnimationsForElement().
Good:
14:53:53.138 78416 GraphicsLayerCA 0x17f7d58c0 platformCALayerAnimationEnded keyframe-effect-13c65603-c439-4b93-9e1f-3f4dcadd4590_2_0_0
14:53:53.138 78416 DocumentAnimationScheduler 0x183f2c8f8 displayRefreshFired()
14:53:53.138 78416 DocumentTimeline 0x17f5c9300 updateAnimations()
14:53:53.138 78416 updating style
14:53:53.138 78416 DocumentTimeline 0x17f5c9300 updateListOfElementsWithRunningAcceleratedAnimationsForElement 0x1860009c0
14:53:53.138 78416 DocumentTimeline 0x17f5c9300 runningAnimationsForElementAreAllAccelerated 0x1860009c0: 0
14:53:53.138 78416 RenderLayerModelObject 0x187300fc0 (layer 0x185b9e690) styleDidChange diff 8 opacity 1 (requires layer 0)
14:53:53.138 78416 DocumentTimeline 0x17f5c9300 runningAnimationsForElementAreAllAccelerated 0x1860009c0: 0
14:53:53.138 78416 RenderLayer 0x185b9e690 removeOnlyThisLayer
14:53:53.138 78416 RenderLayer 0x185b9ed20 updateLayerPositionsAfterLayout
Bad:
14:53:54.557 78416 GraphicsLayerCA 0x17f7c58c0 platformCALayerAnimationEnded keyframe-effect-ffa21c3c-149f-43ee-ad47-184ef4d9227a_2_0_0
14:53:54.557 78416 DocumentAnimationScheduler 0x185ba4ce8 displayRefreshFired()
14:53:54.557 78416 DocumentTimeline 0x183f72c00 updateAnimations()
14:53:54.557 78416 updating style
14:53:54.557 78416 DocumentTimeline 0x183f72c00 runningAnimationsForElementAreAllAccelerated 0x186000af8: 1
14:53:54.557 78416 RenderLayerModelObject 0x1873018c0 (layer 0x17f574e70) styleDidChange diff 8 opacity 1 (requires layer 1)
14:53:54.558 78416 DocumentTimeline 0x183f72c00 runningAnimationsForElementAreAllAccelerated 0x186000af8: 1
14:53:54.558 78416 RenderLayer 0x17f574e70 styleChanged - opacity is 1.000000
14:53:54.558 78416 DocumentTimeline 0x183f72c00 runningAnimationsForElementAreAllAccelerated 0x186000af8: 1
--
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/20181017/36535c58/attachment.html>
More information about the webkit-unassigned
mailing list