New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 826437 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Google Chrome Bug - Infinite Loop on scroll

Reported by rayfes...@gmail.com, Mar 27 2018

Issue description

UserAgent: 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:
 
Screenshot at Mar 27 22-00-36.png
346 KB View Download
 Issue 826438  has been merged into this issue.

Comment 2 by rayfes...@gmail.com, Mar 27 2018

Same issue on Windows/Linux.
The issue did not occur in Firefox/Safari, no infinite loop.
Labels: Needs-Bisect Needs-Triage-M65
Cc: sindhu.chelamcherla@chromium.org
Components: -Blink Blink>Scroll
Labels: Triaged-ET Needs-Feedback
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 . 
826437.mp4
5.8 MB View Download

Comment 5 by rayfes...@gmail.com, 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.

Comment 6 by rayfes...@gmail.com, Mar 28 2018

Please take a look at this issue on other OS.
Project Member

Comment 7 by sheriffbot@chromium.org, Mar 28 2018

Labels: -Needs-Feedback
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
Labels: -Needs-Bisect -Type-Bug-Regression M-67 Target-67 FoundIn-67 OS-Linux OS-Windows Type-Bug
Status: Untriaged (was: Unconfirmed)
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! 
Cc: bokan@chromium.org
Owner: chaopeng@chromium.org
Status: Assigned (was: Untriaged)
chaopeng@ please investigate.
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
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.
Because the JS change the item height then layout and scroll position updated by PageAnimator.

Comment 13 Deleted

Rhino, Nitro and Chakra engines don't have this issue, but I haven't compared them with V8.
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@?
Cc: skobes@chromium.org
+skobes@ ^^^
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.
It also not works in M64, Tested in 64.0.3240.0.

Sign in to add a comment