Touch pad scrolling becomes stuck when scrolling filtered layer |
|||||
Issue descriptionGoogle Chrome 54.0.2839.0 (Official Build) canary (64-bit) Revision 911ba12253b14bfe874a321c57031f5ac534ce31-refs/heads/master@{#414243} OS Mac OS X This is on my Retina MBP. What steps will reproduce the problem? (1) Put your mouse anywhere in the red box. (2) Fling downward. (3) Notice you're stuck only a little bit scrolled down. (4) Fling up or down, notice the page bounces and you can't scroll. (5) Grab the scroll thumb on the right and scroll up and down. What is the expected output? Scroll position should not get trapped.
,
Sep 23 2016
Better repro attached. This has something to do with the way we set LayerImpl::scrolls_drawn_descendant_. When the filtered box is no longer visible, we clear this bit on the scrolling contents layer, so LayerTreeImpl::FindLayerThatIsHitByPoint skips it incorrectly. I'm not sure if we should change the logic in FindLayerThatIsHitByPoint, or change the meaning of this bit. CC'ing ajuma and vollick in case they have ideas.
,
Sep 23 2016
Adding sunxd who's investigated similar bugs before.
,
Sep 23 2016
I wonder if the drawn_descendant condition is really needed (rather than just checking scrollability). Adding majidvp who considered making such a change in patch set 1 of https://codereview.chromium.org/868363004, but ultimately went with another approach there.
,
Nov 15 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eec54e30707389a2e9e0335f432ca2cd4396f869 commit eec54e30707389a2e9e0335f432ca2cd4396f869 Author: skobes <skobes@chromium.org> Date: Tue Nov 15 01:58:12 2016 Make all scrollable layers visible to hit testing. Scrollers should remain scrollable even if their descendants are all offscreen. An offscreen descendant with a render surface was causing num_drawn_descendants to be decremented to 0 in ClearIsDrawnRenderSurfaceLayerListMember. This patch removes num_drawn_descendants and scrolls_drawn_descendant in favor of simply checking LayerImpl::scrollable(). BUG= 641226 Review-Url: https://codereview.chromium.org/2495123002 Cr-Commit-Position: refs/heads/master@{#432056} [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/layers/layer_impl.cc [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/layers/layer_impl.h [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/trees/layer_tree_host_common.cc [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/trees/layer_tree_host_impl_unittest.cc [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/trees/layer_tree_impl.cc [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/trees/scroll_node.cc [modify] https://crrev.com/eec54e30707389a2e9e0335f432ca2cd4396f869/cc/trees/scroll_node.h
,
Nov 15 2016
Verified in canary (56.0.2920.0). |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by skobes@chromium.org
, Aug 26 2016Owner: skobes@chromium.org
Status: Started (was: Untriaged)