New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 802378 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 880122
Owner: ----
Closed: Sep 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Asynchronous hit testing is broken for BrowserPlugin

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

Issue description

Context:
I'm trying to land a change that causes RenderWidgetTargeter to always use the root view's InputTargetClient when starting an async hit test, and then recurse downward as it hits OOPIFs. This is correct because sometimes synchronous hit testing will identify an OOPIF as the target, but actually its parent should receive the event.

Problem:
InputTargetClient doesn't know about BrowserPlugin. An async hit test over a BrowserPlugin will always tell the router to send to the top-most view.

This isn't a problem for most events, since BrowserPlugin forwards most event types anyway from the parent renderer to the child renderer. However, touch events in particular have been converted to rely on surface-based hit testing to solve some other bugs and there is a DCHECK that prevents them from being forwarded. Hence my CL is causing a WebViewTest failure.

Short term solution:
I am planning on avoiding asynchronous hit testing when it his a BrowserPlugin, and relying on the synchronous quad-based hit test result. Please let me know if anyone strongly objects to this.

Long term solution:
Is this important enough to fix more correctly? BrowserPlugin should be gone within the next few months. I believe it only hosts PDFs at this point, which isn't a trivial use case. It seems like the short term solution doesn't cause any regressions that haven't already been there for a while.
 
No, it's probably not important enough to fix more correctly, so long as nothing regresses with this change (I don't expect it to, but one is never sure).

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

The async path is now disabled for GuestViews, so events will always use the synchronous path.
Mergedinto: 880122
Status: Duplicate (was: Available)

Sign in to add a comment