New issue
Advanced search Search tips

Issue 802085 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Race in SitePerProcessBrowserTest.InputEventRouterTouchpadGestureTargetTest

Project Member Reported by kenrb@chromium.org, Jan 15 2018

Issue description

A small modification to asynchronous hit testing in https://chromium-review.googlesource.com/c/chromium/src/+/865815 causes flakiness on InputEventRouterTouchPadGestureTargetTest, even though events are being routed correctly. Locally, the test fails 80-90% of the time with my patch applied, and I believe this is just from my change causing asynchronous hit testing to take a bit longer in some cases.

It appears that this relates to scroll bubbling. On most runs, when the test sends a GestureFlingStart event to the child frame, RenderWidgetHostViewChildFrame::ProcessGestureEvent discards the event because is_scroll_sequence_bubbling_ is set. I haven't gone further in investigating what is causing that to be set prematurely, but I am planning to disable the test so that I can land the change.
 

Comment 1 by mcnee@chromium.org, Jan 16 2018

|is_scroll_sequence_bubbling_| was introduced here: https://chromium-review.googlesource.com/c/chromium/src/+/699699

The idea is that when we're bubbling, we don't send gesture scroll updates to the child renderer and we substitute a fling start for a gesture scroll end, and the fling gets bubbled. This is to avoid guests consuming scroll when we're bubbling. More details: https://docs.google.com/document/d/1yX-UmRpt0S35DvK7E-bRARjmanQ4MOAslgKdnAiLsNg/edit?usp=sharing

Comment 2 by kenrb@chromium.org, Jan 17 2018

Cc: kenrb@chromium.org
 Issue 802829  has been merged into this issue.
Project Member

Comment 3 by bugdroid1@chromium.org, Feb 2 2018

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

commit cbb1c646b962308f397996719ec263b81a1390c7
Author: Kevin McNee <mcnee@chromium.org>
Date: Fri Feb 02 21:35:20 2018

Don't substitute GestureFlingStarts with GestureScrollEnds when bubbling

We were substituting GFS events with GSE events when bubbling scroll
from an OOPIF. This was done to prevent an OOPIF based guest from
consuming a fling that is intended for bubbling (see  crbug.com/770852 ).
It seems that this can lead to an invalid input event stream.

Fortunately, the main concern in that bug was with GestureScrollUpdates.
The fling was a minor issue. The filtering of GSU events is still
valid, so we only remove the GFS substitution.

Bug:  770852 , 806940,  802085 
Change-Id: I647471ea4ff94396ef6e6af21fb89e1841a0eaf7
Reviewed-on: https://chromium-review.googlesource.com/899878
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534160}
[modify] https://crrev.com/cbb1c646b962308f397996719ec263b81a1390c7/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/cbb1c646b962308f397996719ec263b81a1390c7/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/cbb1c646b962308f397996719ec263b81a1390c7/content/browser/site_per_process_hit_test_browsertest.cc

Comment 4 by mcnee@chromium.org, Feb 2 2018

Owner: mcnee@chromium.org
Status: Fixed (was: Available)
The test is reenabled.

Sign in to add a comment