Do not bubble GFS events from oopif.
With browser side fling instead of queuing a GFS in gesture event queue the fling controller processes the event immediately. It means that it is possible to process the GFS before arrival of the GSB's ack. This behavior does not cause any issues since after processing the GFS event the fling controller starts to generate GSU events at every begin frame. Since the generated GSU events are queued in gesture event queue they will wait for the ack of the GSB before getting processed. The only issue with the logic above is when we are bubbling GFS: It is possible that the fling controller processes the GFS before the ack of the GSB is arrived. In this case we won't bubble the GFS since we only bubble the rest of the scroll events in a sequence only when the GSB of the sequence is bubbled. This cl changes the scroll bubbling logic to avoid GFS bubbling. With this change the GFS won't get bubbled and the fling controller of the oopif will generate GSU events which will get bubbled. When the bubbling target did not consume a generated GSU event it will tell the oopif's fling controller (via RWH_input_event_router) to stop flinging. The first three tests are not new. They just show that the flinging on the oopif still causes the parent to scroll when we are bubbling scroll. The last test shows that the child's fling controller stops flinging when the parent's renderer does not consumed the generated GSUs that are bubbled. I also changed the following tests to be browser tests since instead of the fling controller cancelling the fling when generated GSUs are not consumed the RWHV_* calls stop fling. This change is necessary since the RWHV_* knows when the scroll is getting bubbled but the fling controller does not: -Early[Touchpad|Touchscreen]FlingCancelationOnInertialGSUAckNotConsumed BrowserSideFlingBrowserTest.TouchscreenInertialGSUsBubblesFromOOPIF, BrowserSideFlingBrowserTest.InertialGSEGetsBubbledFromOOPIF, BrowserSideFlingBrowserTest.InertialGSUBubblingStopsWhenParentCannotScroll Bug: 900357 Test: BrowserSideFlingBrowserTest.TouchpadInertialGSUsBubblesFromOOPIF, Change-Id: I784aa03b561d0482a95341544133761e40a1917f Reviewed-on: https://chromium-review.googlesource.com/c/1308598Reviewed-by:Navid Zolghadr <nzolghadr@chromium.org> Reviewed-by:
Ken Buchanan <kenrb@chromium.org> Reviewed-by:
Fady Samuel <fsamuel@chromium.org> Reviewed-by:
Kevin McNee <mcnee@chromium.org> Reviewed-by:
Charlie Reis <creis@chromium.org> Commit-Queue: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/heads/master@{#607726}
Showing
Please register or sign in to comment