Mousewheel listener on scroller not in scroll chain blocks scrolls for entire page. |
|||||
Issue descriptionChrome Version: 56.0.2924.87 OS: Linux What steps will reproduce the problem? (1) Visit http://output.jsbin.com/yawaloq/quiet (2) Scroll the body. What is the expected result? Expect it to scroll smoothly as the body has no mousewheel listeners. What happens instead? Instead, it janks up every 500ms because of the wheel event listener added to the #scroller element (and the intentional main thread jank added). This also reproduces on tip of tree 59.0.3037.0 Please use labels and text to provide additional information. For graphics-related bugs, please copy/paste the contents of the about:gpu page at the end of this report.
,
Mar 9 2017
,
Mar 9 2017
It came up on this nice Edge blog post about asynchronous scrolling (see the second browser comparison table). We already track element specific rects for touches right? Seems like wheel could just add to these rects. https://blogs.windows.com/msedgedev/2017/03/08/scrolling-on-the-web/#vChtpkLbsj2PJwkr.97
,
Mar 9 2017
The touch logic is pretty hairy. Thus far, we've been assuming we'll fix this with SPv2.
,
Mar 9 2017
Well you'd need a separate list. You don't want to block touch start on a wheel listener. Ideally we wanted to get away from those lists and list properties on the layers themselves.
,
Mar 29 2017
wjmaclean@ you were mentioning something a month or so ago about doing something for wheel events for OOPIF? Could this be related?
,
Mar 30 2017
I don't think so. My change landed March 13th on dev. https://codereview.chromium.org/2743223003/ This change adds a nonFastScrollableRegion for the entire root-layer of the *iFrame* which does force wheels to go via the main thread, but only within the OOPIF's renderer. It wouldn't affect the remote main-frame in a multi-renderer case. In a single-renderer case (i.e. no OOPIF) this should have no effect; and as best I can tell the page in the description doesn't create any OOPIFs, even when --site-per-process (or --top-document-isolation) is enabled.
,
Aug 1 2017
,
May 9 2018
,
Jul 6
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c commit 3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c Author: sunxd <sunxd@chromium.org> Date: Fri Jul 06 22:58:43 2018 Add wheel event handler region in cc Wheel event handlers currently make scrolling block on main thread, this is also true even if the wheel scroll happens outside the event handler region. In order to make scrolling faster when the event is outside the handler, compositor needs to store information about the regions of handlers. This CL adds those regions to cc::Layers. Bug: 700075 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel Change-Id: I67fc2a08dcab7a9d6cc7054f673ed90b79da70e1 Reviewed-on: https://chromium-review.googlesource.com/893432 Commit-Queue: Xianda Sun <sunxd@chromium.org> Reviewed-by: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Robert Flack <flackr@chromium.org> Reviewed-by: enne <enne@chromium.org> Reviewed-by: David Bokan <bokan@chromium.org> Cr-Commit-Position: refs/heads/master@{#573106} [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/input/input_handler.h [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/layers/layer.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/layers/layer_impl.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/layers/layer_impl.h [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_host.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_host_impl.h [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_host_impl_unittest.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_impl.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/cc/trees/layer_tree_impl.h [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/ui/events/blink/input_handler_proxy.cc [modify] https://crrev.com/3e3a37a78aa5eb7ff2da5adae3fa44efccf5773c/ui/events/blink/input_handler_proxy_unittest.cc |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by dtapu...@chromium.org
, Mar 9 2017Labels: Hotlist-Input-Dev
Owner: sahel@chromium.org
Status: Assigned (was: Untriaged)