Issue metadata
Sign in to add a comment
|
Odd behavior with scroll events highlighted by react-virtualized
Reported by
stevedel...@gmail.com,
Apr 13 2017
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 Steps to reproduce the problem: 1. Go to https://plnkr.co/edit/yn7eOIa5jN5oINuQ2IG9?p=preview 2. In the Preview Window, scroll the left list down a bit. 3. Now scroll the right list. What is the expected behavior? The left list should remain visible while scrolling the right list as can be seen in firefox and safari. What went wrong? As you scroll the right list, the left list blanks out until scrolling is stopped. Did this work before? N/A Chrome version: 57.0.2987.133 Channel: stable OS Version: Flash Version: Shockwave Flash 25.0 r0 I initially thought this was an issue with my implementation of react-virtualized's api, but after a response from the creator: http://stackoverflow.com/questions/43377474/how-can-one-combine-an-autosizer-list-with-a-windowscroller-list-properly-using I'm lead to believe that this is a chrome issue.
,
Apr 13 2017
Also in M58 linux. When the mouse-down happens on the scroll bar for the right element we repaint the left list to blank, then paint it properly again when the mouse up happens after scrolling. Removing will-change: transform on the left scroller makes the issue disappear, so this is a compositing issue. A bisect is required.
,
Apr 13 2017
Mouse-up/mouse-down is not required. Just dragging without lifting the mouse reveals the issue. In the left pane, React is adding and removing list elements (divs) at absolute positions with top set to position the element at the correct location within the scrolling layer. At any given time, only the divs for the visible region of the scroller are in the DOM. When the right pane scroll begins moving, we repaint the left pane incorrectly, while scrolling we do not repaint the left frame (we shouldn't) and when scrolling stops we repaint again and get the correct content. If you scroll the left pane just a little, you can see that we do paint content that is visible with 0 scroll offset, as if it were positioned with 0 scroll offset. But we do not repaint content that is visible only at the current scroll position. This makes me think that the compositor code is at fault here, always compositing the scroll offset 0 content during the mouse move. I'll dig some more trying to see what the JS/CSS does when the scroll is happening, as there are definitely some dynamic changes.
,
Apr 13 2017
schenney@, assigning to you while you investigate.
,
Apr 20 2017
OK, I have a bisect on Linux. I found 399529 is a good version and 425230 is bad version. Bisect points to this set: https://chromium.googlesource.com/chromium/src/+log/d50f0b14f31a77d7c18296dde00e54a07687d06b..49cbf7dc7508bec4920ed325afa0b57749795ac1 schenney@: could you take a look at the above list? Could it be: Raster display item lists via a visual rect RTree. by wkorman
,
Apr 20 2017
Nothing jumps out. It might be the rtree though. I'll double check, and try to get a per-commit bisect.
,
May 2 2017
The rtree patch does indeed seem to be to blame, although I have no idea why it would. I don't think this is a P1. Though the content disappears while scrolling, it does reappear promptly and functionality is not lost (you can't do anything in one pane while scrolling another).
,
May 11 2017
I don't expect to get to this soon, unassigning self in case others able to look.
,
May 17 2017
,
May 18 2018
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 18 2018
Works now, it seems. Closing. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by junov@chromium.org
, Apr 13 2017Status: Untriaged (was: Unconfirmed)