WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Add attachment
proposed patch, testcase, etc.
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.
Top of Page
Format For Printing
XML
Clone This Bug