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

Issue 613628 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocking:
issue 791225



Sign in to add a comment

Need input latency metrics for out of process iframes

Project Member Reported by sahel@chromium.org, May 20 2016

Issue description

I changed signature for ProcessMouseEvent and ProcessMouseWheelEvent functions. They now get latency_info as an input and pass it along with forwarding Mouse/MouseWheel events. In cross_process_frame_connector.cc and render_widget_host_input_event_router.cc files, I just instantiated an object by LatencyInfo() and passed it to the Process functions wherever needed. 

To collect input latency metrics, these latency info objects must be input arguments of the caller functions rather than being created within them. 
 
Cc: wjmaclean@chromium.org
Note that this is pending https://codereview.chromium.org/1993383002/.

James, do you know who would be an appropriate owner here? This isn't high priority, but it should have an owner.
Cc: -wjmaclean@chromium.org kenrb@chromium.org creis@chromium.org
Owner: wjmaclean@chromium.org
I'll take ownership for now. I've added creis@ and kenrb@ as they may know more about how useful it would be for them to have this information sooner as opposed to later.

Comment 3 by creis@chromium.org, May 25 2016

Cc: nick@chromium.org
This is more pressing for --top-document-isolation than --isolate-extensions, so I'll add Nick to comment.

Comment 4 by lfg@chromium.org, May 25 2016

Cc: lfg@chromium.org
tdresser: I've looked through the patch and it should be pretty simple to add the LatencyInfo to RenderWidgetHostInputEventRouter, it's just adding an argument in the call site from RenderWidgetHostView{Aura,Mac,etc}. We should probably do that in that CL.

The more complicated case is when the scroll event bubbles from the child renderer to the parent, but we should define exactly what we want to measure here, are we looking for the full time the event gets processed in both processes? Or two separate times, one for each process? The first case is much harder, since this information is lost going to blink and back, but the second case should be pretty simple as well.

Comment 5 by nasko@chromium.org, Dec 2 2017

Blocking: 791225
Labels: -Pri-3 M-65 Pri-2
mcnee@ - Do you mind taking a look at this? I think for the bubbling case that lfg@'s second case is probably a reasonable approach.
Cc: wjmaclean@chromium.org
Owner: mcnee@chromium.org

Comment 8 by mcnee@chromium.org, Dec 4 2017

We appear to already be doing this. RenderWidgetHostInputEventRouter takes a LatencyInfo as a parameter for its Route*Event and passes it on to the view's Process*Event.

We only create new LatencyInfos in 
- a RWHVGuest code path in RWHIER::RouteMouseEvent
- RWHIER::SendMouseEnterOrLeaveEvents
- RWHIER::BubbleScrollEvent

The use of a new LatencyInfo for the resent scroll event matches the second case.

If we want the first approach with the same LatencyInfo, it looks like we could have RenderWidgetHostImpl::OnGestureEventAck pass it along to the view's GestureEventAck.
creis@ - It looks like this is already implemented, though if we want the full time it takes the event to get processed including bubbling then we may need to do some more work ... do we want that?
Status: Assigned (was: Untriaged)

Sign in to add a comment