New issue
Advanced search Search tips

Issue 767525 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

DCHECK after Mac overscroll navigation with scroll-latching and OOPIFs

Project Member Reported by mcnee@chromium.org, Sep 21 2017

Issue description

Creating this bug from  crbug.com/766173#c3 

What steps will reproduce the problem?
(1) Ensure scroll-latching is enabled (TouchpadAndWheelScrollLatching feature) and run chrome with --site-per-process
(2) Visit a page with an OOPIF e.g. http://csreis.github.io/tests/cross-site-iframe-simple.html
(3) With the mouse cursor inside the OOPIF, scroll to navigate back
(4) Once we've navigated back to the previous page, try to scroll with the trackpad

DCHECK(!is_in_gesture_scroll_[gesture_event.source_device]);
https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_impl.cc?rcl=1ac5b7741ff7b1b9bd8d1d4a91770e1ee1b5b893&l=1193
where the GSB comes from MouseWheelEventQueue::SendScrollBegin.

Presumably, the root RWH is in a gesture scroll when the child is destroyed and the child doesn't generate the necessary GSE to bubble to the root, so the root still thinks it's in a gesture scroll after the navigation.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/407a47224f9f4ef362cdeeafbf7c215b65627ea9

commit 407a47224f9f4ef362cdeeafbf7c215b65627ea9
Author: sahel <sahel@chromium.org>
Date: Fri Oct 06 16:07:26 2017

RWHIER sends GSE to bubbling target when wheel target view is destroyed.

When the wheel target view gets destroyed in the middle of wheel scrolling,
the rest of the wheel events of the current sequence get ignored. This is
problamatic when a scroll bubbling is active since the scroll events that
the wheel target has generated from wheel events are already bubbled to
another view. This cl fixes the issue by sending a GSE to scroll bubbling
target when a wheel end event gets ignored because of destroyed target
wheel view.

To test the change locally, run the below test with wheel scroll latching
enabled.

Bug:  767525 
Test: SitePerProcessBrowserTest.CancelWheelScrollBubblingOnWheelTargetDeletion
Change-Id: Idebdd087d45c13f00bcfcf2b94ec8edbd35aa532
Reviewed-on: https://chromium-review.googlesource.com/693225
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Commit-Queue: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507087}
[modify] https://crrev.com/407a47224f9f4ef362cdeeafbf7c215b65627ea9/content/browser/renderer_host/render_widget_host_input_event_router.cc
[modify] https://crrev.com/407a47224f9f4ef362cdeeafbf7c215b65627ea9/content/browser/site_per_process_browsertest.cc

Comment 2 by sahel@chromium.org, Oct 6 2017

Status: Fixed (was: Assigned)

Sign in to add a comment