[Webkit-unassigned] [Bug 104276] REGRESSION (r133807): Sticky-position review bar on bugzilla review page is jumpy

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 31 21:49:51 PST 2013


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





--- Comment #15 from Simon Fraser (smfr) <simon.fraser at apple.com>  2013-01-31 21:51:52 PST ---
I think this is caused by the order of things when we commit new tree state. We first update the scroll position of the root node, but this triggers a scroll position change on the sticky node child:

* thread #13: tid = 0x3c03, 0x0000000104c2737b WebCore`WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange(WebCore::IntRect const&, WebCore::FloatSize const&) + 491 at ScrollingTreeStickyNode.mm:78, stop reason = step over
    frame #0: 0x0000000104c2737b WebCore`WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange(WebCore::IntRect const&, WebCore::FloatSize const&) + 491 at ScrollingTreeStickyNode.mm:78
    frame #1: 0x0000000104c2530f WebCore`WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition(WebCore::IntPoint const&) + 927 at ScrollingTreeScrollingNodeMac.mm:311
    frame #2: 0x0000000104c24683 WebCore`WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints(WebCore::IntPoint const&) + 131 at ScrollingTreeScrollingNodeMac.mm:290
    frame #3: 0x0000000104c245c8 WebCore`WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition(WebCore::IntPoint const&) + 120 at ScrollingTreeScrollingNodeMac.mm:274
    frame #4: 0x0000000104c22e69 WebCore`WebCore::ScrollingTreeScrollingNodeMac::update(WebCore::ScrollingStateNode*) + 249 at ScrollingTreeScrollingNodeMac.mm:80
    frame #5: 0x0000000104c1bea3 WebCore`WebCore::ScrollingTree::updateTreeFromStateNode(WebCore::ScrollingStateNode*) + 243 at ScrollingTree.cpp:156
    frame #6: 0x0000000104c1bcca WebCore`WebCore::ScrollingTree::commitNewTreeState(WTF::PassOwnPtr<WebCore::ScrollingStateTree>) + 602 at ScrollingTree.cpp:145
    frame #7: 0x0000000104c0f9a6 WebCore`WTF::FunctionWrapper<void (WebCore::ScrollingTree::*)(WTF::PassOwnPtr<WebCore::ScrollingStateTree>)>::operator()(WebCore::ScrollingTree*, WTF::PassOwnPtr<WebCore::ScrollingStateTree>) + 150 at Functional.h:246
    frame #8: 0x0000000104c0f8d5 WebCore`WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (WebCore::ScrollingTree::*)(WTF::PassOwnPtr<WebCore::ScrollingStateTree>)>, void (WebCore::ScrollingTree*, WTF::PassOwnPtr<WebCore::ScrollingStateTree>)>::operator()() + 101 at Functional.h:522
    frame #9: 0x0000000104ba07b9 WebCore`WTF::Function<void ()>::operator()() const + 137 at Functional.h:704
    frame #10: 0x0000000104c19fda WebCore`WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread() + 218 at ScrollingThread.cpp:117
    frame #11: 0x0000000104c1b13a WebCore`WebCore::ScrollingThread::threadRunLoopSourceCallback() + 74 at ScrollingThreadMac.mm:67
    frame #12: 0x0000000104c1b095 WebCore`WebCore::ScrollingThread::threadRunLoopSourceCallback(void*) + 21 at ScrollingThreadMac.mm:61
    frame #13: 0x00007fff85bb3101 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #14: 0x00007fff85bb2a25 CoreFoundation`__CFRunLoopDoSources0 + 245
    frame #15: 0x00007fff85bd5dc5 CoreFoundation`__CFRunLoopRun + 789
    frame #16: 0x00007fff85bd56b2 CoreFoundation`CFRunLoopRunSpecific + 290
    frame #17: 0x00007fff85be4371 CoreFoundation`CFRunLoopRun + 97
    frame #18: 0x0000000104c1b037 WebCore`WebCore::ScrollingThread::initializeRunLoop() + 503 at ScrollingThreadMac.mm:50
    frame #19: 0x0000000104c19ef5 WebCore`WebCore::ScrollingThread::threadBody() + 21 at ScrollingThread.cpp:102
    frame #20: 0x0000000104c19ed5 WebCore`WebCore::ScrollingThread::threadCallback(void*) + 21 at ScrollingThread.cpp:97
    frame #21: 0x0000000102911200 JavaScriptCore`threadEntryPoint + 144 at Threading.cpp:69
    frame #22: 0x0000000102911bf8 JavaScriptCore`wtfThreadEntryPoint + 104 at ThreadingPthreads.cpp:196
    frame #23: 0x00007fff8715b742 libsystem_c.dylib`_pthread_start + 327
    frame #24: 0x00007fff87148181 libsystem_c.dylib`thread_start + 13

However at this point the sticky node has stale viewport constraints; those aren't updated until we're done updating the root node.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list