RESOLVED DUPLICATE of bug 184665 193769
Jumps to the top of the page when interacting with anything.
https://bugs.webkit.org/show_bug.cgi?id=193769
Summary Jumps to the top of the page when interacting with anything.
David Johnston
Reported 2019-01-24 08:18:59 PST
I have created a codepen example here https://codepen.io/anon/pen/ZwGWZg If you click add line until the containing element is full then every time you click add line you are bumped to the top of the page. This is not the case in any other browser on the desktop. But happens on all browsers on IOS. The example above is just a simple example it happens even if you change a class name on an element. Many thanks for your time.
Attachments
David Johnston
Comment 1 2019-01-24 08:24:28 PST
I should add.... I know this is a bug with overflow-y: scroll; and overflow-y: auto; as set on the .content div in my example.
Simon Fraser (smfr)
Comment 2 2019-01-24 14:33:41 PST
The scroll to 0,0 comes from: * frame #0: 0x000000028352c187 WebCore`WebCore::RenderLayer::scrollTo(this=0x00000002ba780000, position={ x = 0, y = 0 }) at RenderLayer.cpp:2352:34 frame #1: 0x000000028352f813 WebCore`WebCore::RenderLayer::setScrollOffset(this=0x00000002ba780000, offset={ x = 0, y = 0 }) at RenderLayer.cpp:2783:5 frame #2: 0x0000000282f5eade WebCore`WebCore::ScrollableArea::scrollPositionChanged(this=0x00000002ba780000, position={ x = 0, y = 0 }) at ScrollableArea.cpp:166:5 frame #3: 0x0000000282f551f8 WebCore`WebCore::ScrollableArea::setScrollOffsetFromAnimation(this=0x00000002ba780000, offset={ x = 0, y = 0 }) at ScrollableArea.cpp:229:5 frame #4: 0x0000000282f55176 WebCore`WebCore::ScrollAnimator::notifyPositionChanged(this=0x00000002ba4a58e8, delta={ width = 0.0, height = -747.0 }) at ScrollAnimator.cpp:193:22 frame #5: 0x000000028033a3f3 WebCore`WebCore::ScrollAnimatorMac::notifyPositionChanged(this=0x00000002ba4a58e8, delta={ width = 0.0, height = -747.0 }) at ScrollAnimatorMac.mm:855:21 frame #6: 0x0000000280339eda WebCore`WebCore::ScrollAnimatorMac::immediateScrollToPosition(this=0x00000002ba4a58e8, newPosition={ x = 0.0, y = 0.0 }, clamping=Clamped) at ScrollAnimatorMac.mm:824:5 frame #7: 0x0000000280339e00 WebCore`WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation(this=0x00000002ba4a58e8, offset={ x = 0.0, y = 0.0 }, clamping=Clamped) at ScrollAnimatorMac.mm:790:5 frame #8: 0x0000000282f5a152 WebCore`WebCore::ScrollableArea::scrollToOffsetWithoutAnimation(this=0x00000002ba780000, offset={ x = 0.0, y = 0.0 }, clamping=Clamped) at ScrollableArea.cpp:144:22 frame #9: 0x000000028352be12 WebCore`WebCore::RenderLayer::scrollToOffset(this=0x00000002ba780000, scrollOffset={ x = 0, y = 0 }, clamping=Clamped) at RenderLayer.cpp:2341:9 frame #10: 0x00000002835336cd WebCore`WebCore::RenderLayer::updateScrollInfoAfterLayout(this=0x00000002ba780000) at RenderLayer.cpp:3553:13 frame #11: 0x00000002833bf2de WebCore`WebCore::RenderBlock::updateScrollInfoAfterLayout(this=0x00000002b0501e60) at RenderBlock.cpp:591:18 frame #12: 0x00000002833d7935 WebCore`WebCore::RenderBlockFlow::layoutBlock(this=0x00000002b0501e60, relayoutChildren=true, pageLogicalHeight={ 0px (0) }) at RenderBlockFlow.cpp:563:5 frame #13: 0x00000002833bf3ac WebCore`WebCore::RenderBlock::layout(this=0x00000002b0501e60) at RenderBlock.cpp:601:5 frame #14: 0x000000028335f28c WebCore`WebCore::RenderElement::layoutIfNeeded(this=0x00000002b0501e60) at RenderElement.h:121:48 frame #15: 0x000000028336117b WebCore`WebCore::DefiniteSizeStrategy::layoutGridItemForMinSizeComputation(this=0x00006000004917e0, child=0x00000002b0501e60, overrideSizeHasChanged=false) const at GridTrackSizingAlgorithm.cpp:1070:11 frame #16: 0x000000028335d1eb WebCore`WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild(this=0x00006000004917e0, child=0x00000002b0501e60) const at GridTrackSizingAlgorithm.cpp:832:5 frame #17: 0x000000028335c408 WebCore`WebCore::GridTrackSizingAlgorithm::sizeTrackToFitNonSpanningItem(this=0x00000002b4c008c0, span=0x00007ffee4d396b8, gridItem=0x00000002b0501e60, track=0x00000002ba77c1dc) at GridTrackSizingAlgorithm.cpp:249:66 frame #18: 0x0000000283361add WebCore`WebCore::GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes(this=0x00000002b4c008c0) at GridTrackSizingAlgorithm.cpp:1148:25 frame #19: 0x00000002833652ea WebCore`WebCore::GridTrackSizingAlgorithm::run(this=0x00000002b4c008c0) at GridTrackSizingAlgorithm.cpp:1317:9 frame #20: 0x00000002834ead4e WebCore`WebCore::RenderGrid::computeTrackSizesForDefiniteSize(this=0x00000002b4c00710, direction=ForRows, availableSpace={ 565px (36160) }) at RenderGrid.cpp:146:28 frame #21: 0x00000002834ebf23 WebCore`WebCore::RenderGrid::layoutBlock(this=0x00000002b4c00710, relayoutChildren=false, (null)={ 0px (0) }) at RenderGrid.cpp:251:13 frame #22: 0x00000002833bf3ac WebCore`WebCore::RenderBlock::layout(this=0x00000002b4c00710) at RenderBlock.cpp:601:5 frame #23: 0x00000002833d9ac2 WebCore`WebCore::RenderBlockFlow::layoutBlockChild(this=0x00000002b05020a0, child=0x00000002b4c00710, marginInfo=0x00007ffee4d39d58, previousFloatLogicalBottom={ 0px (0) }, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:730:15 frame #24: 0x00000002833d83c4 WebCore`WebCore::RenderBlockFlow::layoutBlockChildren(this=0x00000002b05020a0, relayoutChildren=false, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:653:9 frame #25: 0x00000002833d7272 WebCore`WebCore::RenderBlockFlow::layoutBlock(this=0x00000002b05020a0, relayoutChildren=false, pageLogicalHeight={ 0px (0) }) at RenderBlockFlow.cpp:505:13 frame #26: 0x00000002833bf3ac WebCore`WebCore::RenderBlock::layout(this=0x00000002b05020a0) at RenderBlock.cpp:601:5 frame #27: 0x00000002833d9ac2 WebCore`WebCore::RenderBlockFlow::layoutBlockChild(this=0x00000002b05021c0, child=0x00000002b05020a0, marginInfo=0x00007ffee4d3a388, previousFloatLogicalBottom={ 0px (0) }, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:730:15 frame #28: 0x00000002833d83c4 WebCore`WebCore::RenderBlockFlow::layoutBlockChildren(this=0x00000002b05021c0, relayoutChildren=false, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:653:9 frame #29: 0x00000002833d7272 WebCore`WebCore::RenderBlockFlow::layoutBlock(this=0x00000002b05021c0, relayoutChildren=false, pageLogicalHeight={ 0px (0) }) at RenderBlockFlow.cpp:505:13 frame #30: 0x00000002833bf3ac WebCore`WebCore::RenderBlock::layout(this=0x00000002b05021c0) at RenderBlock.cpp:601:5 frame #31: 0x00000002833d9ac2 WebCore`WebCore::RenderBlockFlow::layoutBlockChild(this=0x00000002a0402a30, child=0x00000002b05021c0, marginInfo=0x00007ffee4d3a9b8, previousFloatLogicalBottom={ 0px (0) }, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:730:15 frame #32: 0x00000002833d83c4 WebCore`WebCore::RenderBlockFlow::layoutBlockChildren(this=0x00000002a0402a30, relayoutChildren=false, maxFloatLogicalBottom={ 0px (0) }) at RenderBlockFlow.cpp:653:9 frame #33: 0x00000002833d7272 WebCore`WebCore::RenderBlockFlow::layoutBlock(this=0x00000002a0402a30, relayoutChildren=false, pageLogicalHeight={ 0px (0) }) at RenderBlockFlow.cpp:505:13 frame #34: 0x00000002833bf3ac WebCore`WebCore::RenderBlock::layout(this=0x00000002a0402a30) at RenderBlock.cpp:601:5 frame #35: 0x0000000283662508 WebCore`WebCore::RenderView::layout(this=0x00000002a0402a30) at RenderView.cpp:241:22 frame #36: 0x0000000282db2373 WebCore`WebCore::FrameViewLayoutContext::layout(this=0x00000002ba500d70) at FrameViewLayoutContext.cpp:212:21 frame #37: 0x0000000282db191c WebCore`WebCore::FrameViewLayoutContext::layoutTimerFired(this=0x00000002ba500d70) at FrameViewLayoutContext.cpp:457:5 frame #38: 0x0000000282dc2081 WebCore`decltype(__f=0x00000002ab971c28, __a0=0x00000002ab971c38)).*fp()) std::__1::__invoke<void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*&, void>(void (WebCore::FrameViewLayoutContext::*&)(), WebCore::FrameViewLayoutContext*&) at type_traits:4286:1 frame #39: 0x0000000282dc2000 WebCore`std::__1::__bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void (__f=0x00000002ab971c28, __bound_args=size=1, (null)=__tuple_indices<0> @ 0x00007ffee4d3b158, __args=size=0)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, 0ul, std::__1::tuple<> >(void (WebCore::FrameViewLayoutContext::*&)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) at functional:2216:12 frame #40: 0x0000000282dc1fac WebCore`std::__1::__bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<>, __is_valid_bind_return<void (WebCore::FrameViewLayoutContext::*)(), std::__1::tuple<WebCore::FrameViewLayoutContext*>, std::__1::tuple<> >::value>::type std::__1::__bind<void (this=0x00000002ab971c28)(), WebCore::FrameViewLayoutContext*>::operator()<>() at functional:2249:20 frame #41: 0x0000000282dc1f49 WebCore`WTF::Function<void ()>::CallableWrapper<std::__1::__bind<void (this=0x00000002ab971c20)(), WebCore::FrameViewLayoutContext*> >::call() at Function.h:101:43 frame #42: 0x000000028000f17a WebCore`WTF::Function<void ()>::operator(this=0x00000002ba500da8)() const at Function.h:56:35 frame #43: 0x00000002800a1739 WebCore`WebCore::Timer::fired(this=0x00000002ba500d78) at Timer.h:127:9 frame #44: 0x0000000282f6fffa WebCore`WebCore::ThreadTimers::sharedTimerFiredInternal(this=0x000000029d5853c0) at ThreadTimers.cpp:129:23 frame #45: 0x0000000282f7a971 WebCore`WebCore::ThreadTimers::setSharedTimer(this=0x000000029d5fa3f8)::$_0::operator()() const at ThreadTimers.cpp:69:80 frame #46: 0x0000000282f7a929 WebCore`WTF::Function<void ()>::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(this=0x000000029d5fa3f0)::$_0>::call() at Function.h:101:43 frame #47: 0x000000028000f17a WebCore`WTF::Function<void ()>::operator(this=0x0000000285446520)() const at Function.h:56:35 frame #48: 0x0000000282f4a977 WebCore`WebCore::MainThreadSharedTimer::fired(this=0x0000000285446518) at MainThreadSharedTimer.cpp:83:5 frame #49: 0x0000000282fc60b6 WebCore`WebCore::timerFired((null)=0x00006000033bc000, (null)=0x0000000000000000) at MainThreadSharedTimerCF.cpp:74:40 This is about clamping to 0,0 when we update the scroll position from layout. This is a dup of bug 184665. *** This bug has been marked as a duplicate of bug 184665 ***
Note You need to log in before you can comment on or make changes to this bug.