[Webkit-unassigned] [Bug 135514] Layers need to be already updated before we call adjustViewSize()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Nov 9 20:45:10 PST 2014


https://bugs.webkit.org/show_bug.cgi?id=135514

Simon Fraser (smfr) <simon.fraser at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simon.fraser at apple.com,
                   |                            |zalan at apple.com

--- Comment #1 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
Here's another instance of this.

Hit-test is forcing layout. Before we've updated layers, FrameView::adjustViewSize() is causing scrolling, which does FrameView::updateCompositingLayersAfterScrolling() even though we haven't updated layers after the layout yet.

(lldb) bt
* thread #1: tid = 0x61bcd, 0x000000010bbfad2c WebCore`WebCore::RenderGeometryMap::mapToContainer(this=0x00007fff5d9a2008, rect=0x00007fff5d9a1480, container=0x0000000000000000) const + 988 at RenderGeometryMap.cpp:143, queue = 'com.apple.main-thread', stop reason = breakpoint 8.1
  * frame #0: 0x000000010bbfad2c WebCore`WebCore::RenderGeometryMap::mapToContainer(this=0x00007fff5d9a2008, rect=0x00007fff5d9a1480, container=0x0000000000000000) const + 988 at RenderGeometryMap.cpp:143
    frame #1: 0x000000010bc2f43e WebCore`WebCore::RenderGeometryMap::absoluteRect(this=0x00007fff5d9a2008, rect=0x00007fff5d9a1480) const + 62 at RenderGeometryMap.h:90
    frame #2: 0x000000010bc7f245 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8c2932bd0, layer=0x00007ff8c2932e30, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a1608, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a15f7) + 453 at RenderLayerCompositor.cpp:1233
    frame #3: 0x000000010bc7f655 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8c2932aa0, layer=0x00007ff8c2932bd0, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a17b8, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a17a7) + 1493 at RenderLayerCompositor.cpp:1317
    frame #4: 0x000000010bc7f655 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8c2932970, layer=0x00007ff8c2932aa0, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a1968, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a1957) + 1493 at RenderLayerCompositor.cpp:1317
    frame #5: 0x000000010bc7f655 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8b8fa83b0, layer=0x00007ff8c2932970, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a1b18, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a1b07) + 1493 at RenderLayerCompositor.cpp:1317
    frame #6: 0x000000010bc7f655 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8b8f09040, layer=0x00007ff8b8fa83b0, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a1cc8, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a1cb7) + 1493 at RenderLayerCompositor.cpp:1317
    frame #7: 0x000000010bc7f734 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x00007ff8bbe03890, layer=0x00007ff8b8f09040, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a1e78, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a1e67) + 1716 at RenderLayerCompositor.cpp:1323
    frame #8: 0x000000010bc7f734 WebCore`WebCore::RenderLayerCompositor::computeCompositingRequirements(this=0x00007ff8bbe04680, ancestorLayer=0x0000000000000000, layer=0x00007ff8bbe03890, overlapMap=0x00007fff5d9a1fd0, compositingState=0x00007fff5d9a2448, layersChanged=0x00007fff5d9a2447, descendantHas3DTransform=0x00007fff5d9a2446) + 1716 at RenderLayerCompositor.cpp:1323
    frame #9: 0x000000010bc7ea70 WebCore`WebCore::RenderLayerCompositor::updateCompositingLayers(this=0x00007ff8bbe04680, updateType=CompositingUpdateOnScroll, updateRoot=0x00007ff8bbe03890) + 960 at RenderLayerCompositor.cpp:729
    frame #10: 0x000000010adcc3db WebCore`WebCore::FrameView::updateCompositingLayersAfterScrolling(this=0x00007ff8bf00b200) + 139 at FrameView.cpp:2166
    frame #11: 0x000000010bf1c95a WebCore`WebCore::ScrollView::scrollTo(this=0x00007ff8bf00b200, newOffset=0x00007fff5d9a2610) + 186 at ScrollView.cpp:478
    frame #12: 0x000000010adcf971 WebCore`WebCore::FrameView::scrollTo(this=0x00007ff8bf00b200, newOffset=0x00007fff5d9a2610) + 81 at FrameView.cpp:3235
    frame #13: 0x000000010bf1c84a WebCore`WebCore::ScrollView::setScrollOffset(this=0x00007ff8bf00b200, offset=0x00007fff5d9a2a58) + 1002 at ScrollView.cpp:457
    frame #14: 0x000000010bf1c88f WebCore`non-virtual thunk to WebCore::ScrollView::setScrollOffset(this=0x00007ff8bf00b238, offset=0x00007fff5d9a2a58) + 47 at ScrollView.cpp:458
    frame #15: 0x000000010bed101d WebCore`WebCore::ScrollableArea::scrollPositionChanged(this=0x00007ff8bf00b238, position=0x00007fff5d9a2a58) + 93 at ScrollableArea.cpp:156
    frame #16: 0x000000010bed0f8f WebCore`WebCore::ScrollableArea::notifyScrollPositionChanged(this=0x00007ff8bf00b238, position=0x00007fff5d9a2a58) + 47 at ScrollableArea.cpp:148
    frame #17: 0x000000010a5c394e WebCore`WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(this=0x00007ff8b8d020a0, scrollingNodeID=3, scrollPosition=0x00007fff5d9a2ae8, programmaticScroll=true, scrollingLayerPositionAction=SetScrollingLayerPosition) + 302 at AsyncScrollingCoordinator.cpp:269
    frame #18: 0x000000010a5c3745 WebCore`WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate(this=0x00007ff8b8d020a0, frameView=0x00007ff8bf00b200, scrollPosition=0x00007fff5d9a2c18) + 309 at AsyncScrollingCoordinator.cpp:180
    frame #19: 0x000000010adccab3 WebCore`WebCore::FrameView::requestScrollPositionUpdate(this=0x00007ff8bf00b200, position=0x00007fff5d9a2c18) + 259 at FrameView.cpp:2202
    frame #20: 0x000000010adccb0f WebCore`non-virtual thunk to WebCore::FrameView::requestScrollPositionUpdate(this=0x00007ff8bf00b238, position=0x00007fff5d9a2c18) + 47 at FrameView.cpp:2209
    frame #21: 0x000000010bed1382 WebCore`WebCore::ScrollableArea::setScrollOffsetFromAnimation(this=0x00007ff8bf00b238, offset=0x00007fff5d9a2c18) + 50 at ScrollableArea.cpp:208
    frame #22: 0x000000010bed46d1 WebCore`WebCore::ScrollAnimator::notifyPositionChanged(this=0x00007ff8b8c3b820, delta=0x00007fff5d9a2c98) + 65 at ScrollAnimator.cpp:170
    frame #23: 0x000000010bedc846 WebCore`WebCore::ScrollAnimatorMac::notifyPositionChanged(this=0x00007ff8b8c3b820, delta=0x00007fff5d9a2c98) + 70 at ScrollAnimatorMac.mm:786
    frame #24: 0x000000010bedc2da WebCore`WebCore::ScrollAnimatorMac::immediateScrollTo(this=0x00007ff8b8c3b820, newPosition=0x00007fff5d9a2eb8) + 282 at ScrollAnimatorMac.mm:765
    frame #25: 0x000000010bedc1b3 WebCore`WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation(this=0x00007ff8b8c3b820, offset=0x00007fff5d9a2eb8) + 67 at ScrollAnimatorMac.mm:727
    frame #26: 0x000000010bed0e6c WebCore`WebCore::ScrollableArea::scrollToOffsetWithoutAnimation(this=0x00007ff8bf00b238, offset=0x00007fff5d9a2eb8) + 60 at ScrollableArea.cpp:135
    frame #27: 0x000000010bf1b272 WebCore`WebCore::ScrollView::updateScrollbars(this=0x00007ff8bf00b200, desiredOffset=0x00007fff5d9a3010) + 5170 at ScrollView.cpp:734
    frame #28: 0x000000010bf1bd45 WebCore`WebCore::ScrollView::setContentsSize(this=0x00007ff8bf00b200, newSize=0x00007fff5d9a30e0) + 165 at ScrollView.cpp:385
    frame #29: 0x000000010adc3960 WebCore`WebCore::FrameView::setContentsSize(this=0x00007ff8bf00b200, size=0x00007fff5d9a30e0) + 112 at FrameView.cpp:558
    frame #30: 0x000000010adc49d5 WebCore`WebCore::FrameView::adjustViewSize(this=0x00007ff8bf00b200) + 357 at FrameView.cpp:591
    frame #31: 0x000000010adc6e96 WebCore`WebCore::FrameView::layout(this=0x00007ff8bf00b200, allowSubtree=true) + 3462 at FrameView.cpp:1339
    frame #32: 0x000000010aa2710d WebCore`WebCore::Document::updateLayout(this=0x00007ff8bf000000) + 349 at Document.cpp:1868
    frame #33: 0x000000010be12ba3 WebCore`WebCore::RenderView::hitTest(this=0x00007ff8bbe03f60, request=0x00007fff5d9a3760, location=0x00007fff5d9a3418, result=0x00007fff5d9a3418) + 51 at RenderView.cpp:177
    frame #34: 0x000000010be12b64 WebCore`WebCore::RenderView::hitTest(this=0x00007ff8bbe03f60, request=0x00007fff5d9a3760, result=0x00007fff5d9a3418) + 68 at RenderView.cpp:172
    frame #35: 0x000000010aa2fecb WebCore`WebCore::Document::prepareMouseEvent(this=0x00007ff8bf000000, request=0x00007fff5d9a3760, documentPoint=0x00007fff5d9a3590, event=0x00007fff5d9a39e8) + 203 at Document.cpp:3071
    frame #36: 0x000000010ac02f7f WebCore`WebCore::EventHandler::prepareMouseEvent(this=0x00007ff8b8c14790, request=0x00007fff5d9a3760, mouseEvent=0x00007fff5d9a39e8) + 191 at EventHandler.cpp:2356
    frame #37: 0x000000010ac034d6 WebCore`WebCore::EventHandler::handleMouseMoveEvent(this=0x00007ff8b8c14790, platformMouseEvent=0x00007fff5d9a39e8, hoveredNode=0x00007fff5d9a3800, onlyUpdateScrollbars=false) + 710 at EventHandler.cpp:1933
    frame #38: 0x000000010ac03056 WebCore`WebCore::EventHandler::mouseMoved(this=0x00007ff8b8c14790, event=0x00007fff5d9a39e8) + 198 at EventHandler.cpp:1847

-- 
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/20141110/7bb50adf/attachment-0002.html>


More information about the webkit-unassigned mailing list