Windows scroll vertically by page feature doesn't take scrollbar visibility into account
|Project Member Reported by jam...@chromium.org, Apr 29 2013||Back to list|
On windows, mouse wheels can scroll by a fixed delta or scroll by page. Scroll by page requires special handling since the amount to scroll depends on the content. There is basic support for this, but it fails on content that is vertically scrollable but doesn't have a compositor scrollbar. For now, these scrolls just go to the main thread. It'd be better to handle them on the compositor thread.
Apr 29 2013,
The specific bug is here: https://code.google.com/p/chromium/codesearch#chromium/src/cc/trees/layer_tree_host_impl.cc&q=layer_tree_host_impl.cc&sq=package:chromium&type=cs&l=1716 if (!layer_impl->vertical_scrollbar_layer()) continue; Without that line, we incorrectly scroll on pages that don't have a vertical scrollbar (say they have overflow-y hidden). With that line, we incorrectly fail to scroll on pages that do have a vertical scrollbar but that scrollbar is not registered with the compositor - i.e. it's a CSS styled one or something else the compositor does not understand.
Aug 27 2015,
Aug 26 2016,
This issue has been available for more than 365 days, and should be re-evaluated. Please re-triage this issue. The Hotlist-Recharge-Cold label is applied for tracking purposes, and should not be removed after re-triaging the issue. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Jan 10 2017,
Jan 12 2017,
I am not sure if this bug is still relevant. We don't check scroll bar existence anymore rather we seem to depend on user_scrollable_horizontal and user_scrollable_vertical  which are set by blink based on the overflow property and do not depend on existence of scrollbar.  https://cs.chromium.org/chromium/src/cc/trees/scroll_node.h?q=user_scrollable_vertical&sq=package:chromium&l=59&dr=C
Jan 12 2017,
It is since we're still punting wheels that scroll by page to the main thread: https://cs.chromium.org/chromium/src/ui/events/blink/input_handler_proxy.cc?sq=package:chromium&rcl=1484237857&l=636 Though, as you mention, the reasons the bug was intractable no longer applies. We should try removing this and handling the wheel event on the compositor (assuming the scroll by page logic still exists in CC).
Triage check-in, still an issue in 2018-Q1. The line mentioned above is now at https://cs.chromium.org/chromium/src/ui/events/blink/input_handler_proxy.cc?sq=package:chromium&l=685. That's in InputHandlerProxy::HandleGestureScrollBegin
Sign in to add a comment