Google Chrome Bug - Infinite Loop on scroll
Reported by
rayfes...@gmail.com,
Mar 27 2018
|
|||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 Steps to reproduce the problem: 1. https://codepen.io/valedev/pen/OvzLaP 2. With an opened console, please scroll down and you will see that `scroll` event came to the infinite loop when we were changing hight of the first list element in provided an example. This bug is not occurring in previous versions of Chrome. What is the expected behavior? Correct work. What went wrong? The browser was going to an infinite loop when scrolling and changing element hight inside the container where we scroll dynamically. Did this work before? Yes 64.0.3282.140 Chrome version: 65.0.3325.181 Channel: stable OS Version: OS X 10.13.3 Flash Version:
,
Mar 27 2018
Same issue on Windows/Linux. The issue did not occur in Firefox/Safari, no infinite loop.
,
Mar 28 2018
,
Mar 28 2018
Able to reproduce this issue on reported version 65.0.3282.140 and on latest canary 67.0.3381.0 using Mac 10.13.3. This issue is seen in 64.0.3282.186 and from M60 onwards. Attaching screencast for reference. @Reporter: Please check the video and let us know if it is the same behavior you are observing .
,
Mar 28 2018
Correct, the behaviour is same and the key thing here that this is not only in Mac OS this bug also on Windows, Linux.
,
Mar 28 2018
Please take a look at this issue on other OS.
,
Mar 28 2018
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Mar 28 2018
Able to reproduce this issue on Linux and Windows. As this issue is seen from M-60 considering this issue as Non-Regression, removing Needs-Bisect and marking as Untriaged. Thanks!
,
Mar 29 2018
chaopeng@ please investigate.
,
Mar 29 2018
The Infinite scroll is from auto scroll animation: #2 0x7f8e51df868f blink::EventTarget::DispatchEvent() #3 0x7f8e51da041b blink::ScriptedAnimationController::DispatchEvents() #4 0x7f8e51da08d7 blink::ScriptedAnimationController::ServiceScriptedAnimations() #5 0x7f8e51cc3356 blink::Document::ServiceScriptedAnimations() #6 0x7f8e529b2eb8 blink::PageAnimator::ServiceScriptedAnimations() #7 0x7f8e529b8a3d blink::PageWidgetDelegate::Animate() I think we should not dispatch this scroll to js. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/dom/ScriptedAnimationController.cpp?rcl=2ed30ffa70000045d888892851a3e7d69b181a7b&l=175
,
Apr 3 2018
But why does it DispatchEvents? Presumably ServiceScriptedAnimations should not have ScheduledItems if we're not currently doing an animated scroll. When I repro this, I'm using trackpad scrolling and I see the scroll event dispatched when I stop scrolling.
,
Apr 3 2018
Because the JS change the item height then layout and scroll position updated by PageAnimator.
,
Apr 3 2018
Rhino, Nitro and Chakra engines don't have this issue, but I haven't compared them with V8.
,
Apr 3 2018
Ah, changing the height alone shouldn't change the scroll offset but we do try to anchor the scroller which means we might change the scroll offset due to layout. Is this where the scroll change is coming from? I thought Scroll Anchoring tries to avoid this kind of infinite loop. skobes@?
,
Apr 3 2018
+skobes@ ^^^
,
Apr 17 2018
Scroll anchoring avoids some infinite loops, but not all. If a scroll occurs while the first <li> is fully offscreen, we will perform an anchoring scroll in response to the height change. But this behavior isn't new, so if it worked in M64 we might need a bisect.
,
Apr 30 2018
It also not works in M64, Tested in 64.0.3240.0. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by dtapu...@chromium.org
, Mar 27 2018