New issue
Advanced search Search tips

Issue 797322 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Remove resetting is_in_gesture_scroll for android VR once it uses motion events.

Project Member Reported by sahel@chromium.org, Dec 22 2017

Issue description

When a GFS with touchpad source gets handled by FlingController, the controller sends wheel events to progress the fling. In Android VR The first wheel event sent by the FlingController will cause a GSB generation in MouseWheelEventQueue since WebContentsEventForwarder injects gesture scroll events to the RWHI rather than injecting wheel events.
Once Motion events are used to process input events in VR, no GSB will be generated during touchpad fling handling.
 
Blocking: 797299
Blocking: -797299
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 22 2017

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

commit 60f0922199c46b4ca5319838ab047ec45aeceda7
Author: Sahel Sharify <sahel@chromium.org>
Date: Fri Dec 22 20:36:58 2017

Fixed the regression that caused VR scrolling test to fail.

org.chromium.chrome.browser.vr_shell.VrShellControllerInputTest#testControllerScrolling
failed after landing browserside touchpad fling. The resean for this
regression is that with touchpad fling the proper event stream is
WebMouseWheelEvents from which Gesture scroll events are generated and
then a GFS event with touchpad source. However in VR while scrolling
with touchpad Gesture scroll events are directly injected to RWHI rather
than injecting WebMouseWheelEvents and then generating gesture scroll
events from them. The proper fix is to make the VR event stream similar
to the proper event stream for touchpad scrolling but meanwhile this
cl fixes the issue by handling the VR case separately.

The fix has three parts:
1- The ProgressFling is called in RWHV_Android to progress the fling. It
used to get called only on Aura for touchpad flings on chromebook.
2- is_in_gesture_scroll_ DCHECK logic in RWHI is changed for Android VR:
When a GFS with touchpad source gets handled by FlingController,
the controller sends wheel events to progress the fling. In Android VR
the is_in_gesture_scroll_ should get reset on GFS since the first wheel
event sent by the FlingController will cause a GSB generation in
MouseWheelEventQueue. This GSB generation happens since during scrolling
with touchpad the WebContentsEventForwarder directly injects gesture
scroll events to the RWHI rather than injecting wheel events. Once Motion
events are used for VR event processing this DCHECK change must get back
to what it was.
3- Input_handler_proxy used to assume that nonblocking wheel events have
always had a blocking wheel event before them. This assumption is not
valid anymore since as explained in number 2, in VR case the first wheel
event that is send by the flingController is nonblocking and it doesn't
have any wheel events prior to it since the scrolling is directly handled
by gesture scroll event injection.

TBR: dtapuska@chromium.org, tdresser@chromium.org
Bug: 797322,  797299 
Change-Id: I9ab4e8236c6fd274d84e3d571ef0fc2388ec17e1
Reviewed-on: https://chromium-review.googlesource.com/842707
Commit-Queue: Sahel Sharifymoghaddam <sahel@chromium.org>
Reviewed-by: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526050}
[modify] https://crrev.com/60f0922199c46b4ca5319838ab047ec45aeceda7/content/browser/renderer_host/input/fling_controller.cc
[modify] https://crrev.com/60f0922199c46b4ca5319838ab047ec45aeceda7/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/60f0922199c46b4ca5319838ab047ec45aeceda7/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/60f0922199c46b4ca5319838ab047ec45aeceda7/ui/events/blink/input_handler_proxy.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 10 2018

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

commit f11f9437c10af943f3770cd7bba3c0eb2b4b15c2
Author: Sahel Sharify <sahel@chromium.org>
Date: Wed Jan 10 16:00:45 2018

Fixed VR scrolling regression when wheel scroll latching is disabled.

This cl is a follow up for the following change:
https://chromium-review.googlesource.com/c/chromium/src/+/842707

It updates the expected scroll event sequence for VR touchpad scrolling
when wheel scroll latching is disabled, I missed this case in the
original cl.

Bug:  798741 , 797322
Change-Id: Ieac7fdc2dc96287848bab985894337f40275b2b5
Reviewed-on: https://chromium-review.googlesource.com/857355
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Commit-Queue: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528328}
[modify] https://crrev.com/f11f9437c10af943f3770cd7bba3c0eb2b4b15c2/content/browser/renderer_host/render_widget_host_impl.cc

Sign in to add a comment