New issue
Advanced search Search tips

Issue 711648 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Scroll event is called after changing elements heights in its handler

Reported by yec...@gmail.com, Apr 14 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

Steps to reproduce the problem:
1. Open https://jsfiddle.net/o708wcd4/20/
2. Scroll down the list in Fiddle output window by mouse wheel
3. It would be scrolled down to the end of list

What is the expected behavior?
Scroll event should be called only twice - before scroll and after. Manipulations in the handler should not cause more scroll events (as they do not modify overall scrollable container height)

What went wrong?
I think the reason in settings heights to '.before' and '.after' elements inside the handler. But sum of their heights does not change, so no need on this event.
Also, in previous version there were no event, and in other browsers (checked Edge, FF).

Did this work before? Yes 55.0.2883.75

Chrome version: 57.0.2987.133  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 25.0 r0

Maybe there is a way to set the heights of .before and .after elements without firing additional 'scroll' events?
 
Components: -Blink Blink>CSS
Labels: -OS-Windows OS-All
Status: Untriaged (was: Unconfirmed)
It does seem weird that the scroll is called multiple times. CSS folks, could you take a closer look?
Labels: Needs-Bisect
Huh, that is weird. I can repro in 60.0.3073.0 (Official Build) canary (32-bit) (cohort: 32-Bit) (Windows 10).

The reporter says this used to not happen. Let's get a bisect on this, and figure out which team should take this.

Comment 3 by ajha@chromium.org, Apr 20 2017

Cc: ajha@chromium.org
Components: Blink>Scroll
Labels: -Pri-2 -Needs-Bisect hasbisect-per-revision M-60 Pri-1
Owner: skobes@chromium.org
Status: Assigned (was: Untriaged)
Able to reproduce the issue on the latest canary(60.0.3074.0) and the latest stable(58.0.3029.81) on Windows-10, Mac OS 10.12.3 and Linux Ubuntu 14.04.

Regressed in M-56.
==================
Last good build: 56.0.2895.0
First bad build: 56.0.2896.0

Changelog:
==========
https://chromium.googlesource.com/chromium/src/+log/bf2f3855e7e22042ad5d11e785b13d6e7c84127a..6d380ba3ab246a15d6269a75328f481336b53ee1

Looks to be related to scroll anchoring. skobes@: Could you please take a look at this.

Thank you!

Comment 4 by suzyh@chromium.org, Apr 20 2017

Labels: Regressed-56

Comment 5 by skobes@chromium.org, Apr 20 2017

Status: WontFix (was: Assigned)
Chrome 56 introduced scroll anchoring (https://github.com/WICG/ScrollAnchoring/blob/master/explainer.md), which can unfortunately have negative interactions with "virtual" scrollers.  In this case, increasing the height of the .before div pushes the table down, causing a new scroll to occur.

The best solution for virtual scrollers is to use CSS "overflow-anchor: none" to disable scroll anchoring.

Comment 6 by yec...@gmail.com, Apr 21 2017

Thanks, "overflow-anchor: none" helps.

Sign in to add a comment