blob: fe7f01dfcc9989e876115b7ad38b05d16f61097b [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of Event histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="EventLatencyBreakdown">
<variant name="Activation" summary="the duration of the activation stage">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="BeginImplFrameToSendBeginMainFrame"
summary="the time from when the compositor impl frame is started to when
BeginMainFrame is sent">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="BrowserToRendererCompositor"
summary="the time from when the event is generated until the first
compositor stage after the event arrives in the renderer">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="Commit" summary="the duration of the commit stage">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="EndActivateToSubmitCompositorFrame"
summary="the time from when an activation is complete to the next
SubmitCompositorFrame">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="EndCommitToActivation"
summary="the time from when a commit is complete to the beginning of the
next activation">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit"
summary="the time from when the BeginMainFrame is sent to the beginning
of the commit">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.Animate"
summary="the time portion of SendBeginMainFrameToCommit spent on
animations">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.BeginMainSentToStarted"
summary="the time portion of SendBeginMainFrameToCommit spent before
starting main thread work">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.Composite"
summary="the time portion of SendBeginMainFrameToCommit spent on
compositing">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.CompositeCommit"
summary="the time portion of SendBeginMainFrameToCommit spent on
composite commit">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.CompositingAssignments"
summary="the time portion of SendBeginMainFrameToCommit spent on
updating compositing assignments">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.CompositingInputs"
summary="the time portion of SendBeginMainFrameToCommit spent on
updating compositing inputs">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.HandleInputEvents"
summary="the time portion of SendBeginMainFrameToCommit spent on
handling imput events">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.LayoutUpdate"
summary="the time portion of SendBeginMainFrameToCommit spent on layout
update">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.Paint"
summary="the time portion of SendBeginMainFrameToCommit spent on paint">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.Prepaint"
summary="the time portion of SendBeginMainFrameToCommit spent on
prepaint">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.ScrollingCoordinator"
summary="the time portion of SendBeginMainFrameToCommit spent on
scrolling coordinator">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.StyleUpdate"
summary="the time portion of SendBeginMainFrameToCommit spent on style
update">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SendBeginMainFrameToCommit.UpdateLayers"
summary="the time portion of SendBeginMainFrameToCommit spent on
updating layers">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="SubmitCompositorFrameToPresentationCompositorFrame"
summary="the time from when the compositor frame is submitted to the
display compositor to when it is presented">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"
summary="the time from when the compositor frame is received to when it
starts to draw">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart"
summary="the time from when the compositor frame is started to draw to
when it starts swap">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant
name="SubmitCompositorFrameToPresentationCompositorFrame.SubmitToReceiveCompositorFrame"
summary="the time from when the compositor frame is submitted to when it
is received">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame"
summary="the time from when the compositor frame ends swap to when it is
presented">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd"
summary="the time from when the compositor frame starts to swap to when
it ends swap">
<obsolete>
Obsolete as of M90. Breakdowns are being tracked in UKM.
</obsolete>
</variant>
<variant name="TotalLatency"
summary="total latency from when the event is generated until the frame
is presented on screen"/>
</variants>
<variants name="EventLatencyEventType">
<variant name="GestureDoubleTap" summary="gesture-double-tap events"/>
<variant name="GestureLongPress" summary="gesture-long-press events"/>
<variant name="GestureLongTap" summary="gesture-long-tap events"/>
<variant name="GestureShowPress" summary="gesture-show-press events"/>
<variant name="GestureTap" summary="gesture-tap events"/>
<variant name="GestureTapCancel" summary="gesture-tap-cancel events"/>
<variant name="GestureTapDown" summary="gesture-tap-down events"/>
<variant name="GestureTapUnconfirmed"
summary="gesture-tap-unconfirmed events"/>
<variant name="GestureTwoFingerTap" summary="gesture-two-finger-tap events"/>
<variant name="KeyPressed" summary="key-pressed events"/>
<variant name="KeyReleased" summary="key-released events"/>
<variant name="MouseDragged" summary="mouse-dragged events"/>
<variant name="MousePressed" summary="mouse-pressed events"/>
<variant name="MouseReleased" summary="mouse-released events"/>
<variant name="MouseWheel" summary="mouse-wheel events"/>
<variant name="TouchMoved" summary="touch-moved events"/>
<variant name="TouchPressed" summary="touch-pressed events"/>
<variant name="TouchReleased" summary="touch-released events"/>
</variants>
<variants name="EventLatencyPinchEventType">
<variant name="GesturePinchBegin" summary="gesture-pinch-begin events"/>
<variant name="GesturePinchEnd" summary="gesture-pinch-end events"/>
<variant name="GesturePinchUpdate"
summary="gesture-pinch-update events in a scroll sequence"/>
</variants>
<variants name="EventLatencyPinchInputType">
<variant name="Touchpad" summary="touchpad"/>
<variant name="Touchscreen" summary="touchscreen"/>
</variants>
<variants name="EventLatencyScrollEventType">
<variant name="FirstGestureScrollUpdate"
summary="the first gesture-scroll-update event in a scroll sequence"/>
<variant name="GestureScrollBegin" summary="gesture-scroll-begin events"/>
<variant name="GestureScrollEnd" summary="gesture-scroll-end events"/>
<variant name="GestureScrollUpdate"
summary="non-inertial gesture-scroll-update events in a scroll sequence
except for the first one"/>
<variant name="InertialGestureScrollUpdate"
summary="inertial gesture-scroll-update events in a scroll sequence"/>
</variants>
<variants name="EventLatencyScrollInputType">
<variant name="Autoscroll" summary="autoscroll"/>
<variant name="Scrollbar" summary="scrollbar"/>
<variant name="Touchscreen" summary="touchscreen"/>
<variant name="Wheel" summary="mouse wheel or touchpad"/>
</variants>
<variants name="TopControlsState">
<variant name=".NoTopControlsMoved" summary="Top controls did not change."/>
<variant name=".TopControlsMoved" summary="Top controls changed."/>
</variants>
<histogram name="Event.AggregatedLatency.Renderer2" units="microseconds"
expires_after="2022-04-24">
<owner>flackr@chromium.org</owner>
<summary>
Time between initiation of any input event and the renderer receiving and
starting to process it.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.AndroidActionDown.ToolType" enum="MotionEventToolType"
expires_after="never">
<!-- expires-never: Needed for long-term usage tracking for different types of
pointers. -->
<owner>mustaq@chromium.org</owner>
<owner>nzolghadr@chromium.org</owner>
<summary>
Tracks the number of Android MotionEvents with ACTION_DOWN or
ACTION_POINTER_DOWN or ACTION_BUTTON_PRESS for each ToolType (unknown,
finger, mouse or stylus).
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.AsyncTargeting.AsyncClientDepth" units="clients"
expires_after="2021-08-09">
<owner>sadrul@chromium.org</owner>
<owner>event-targeting@chromium.org</owner>
<summary>
Tracks how many clients were queried (asynchronously) to determine the
target for an input event.
</summary>
</histogram>
<histogram name="Event.AsyncTargeting.ResponseTime" units="ms"
expires_after="2022-06-05">
<owner>sadrul@chromium.org</owner>
<owner>event-targeting@chromium.org</owner>
<summary>
Tracks how long it takes for a client to respond to an asynchronous request
to find a target for an input event.
</summary>
</histogram>
<histogram name="Event.BrowserVerifiedUserActivation" enum="BooleanSuccess"
expires_after="2021-10-17">
<owner>liviutinta@chromium.org</owner>
<owner>mustaq@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Records whether Browser User Activation Verification is successful or not.
We are interested in how many times the Browser User Activation Verification
fails vs how many times it succeeds.
</summary>
</histogram>
<histogram name="Event.ClickNotFiredDueToDomManipulation" enum="BooleanHit"
expires_after="M82">
<owner>nzolghadr@chromium.org</owner>
<summary>
Whether click target was affected by DOM manipulation or not.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.ClickTargetChangedDueToInteractiveElement"
enum="BooleanHit" expires_after="M80">
<owner>nzolghadr@chromium.org</owner>
<summary>
Whether click target was affected by interactive element being in the
ancestor path.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.DownEventCount.PerInputFormFactorDestinationCombination2"
enum="DownEventInputFormFactorDestinationCombination2"
expires_after="2022-04-17">
<owner>tbuckley@chromium.org</owner>
<summary>
The number of down events received per destination, input and form factor
combination.
Input is down events generated by mouse/touch/stylus. Form factor is down
events generated by clamshell/touchviewLandscape/touchviewPortrait.
Destination: Every down event that is targeted to each destination will be
counted including those that don't have an effect. For example: Tapping on a
disabled button inside the browser frame will be treated as down events on
browser window.
</summary>
</histogram>
<histogram name="Event.FractionOfTimeWithoutUserInput" units="%"
expires_after="2021-06-16">
<obsolete>
Removed December 2021.
</obsolete>
<owner>sullivan@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
For each 10 second window, reports the fraction of the time there was no
user input. We consider there to be no user input if we haven't received any
events for &gt; 50ms.
</summary>
</histogram>
<histogram name="Event.FrameEventRouting.NoGestureTarget" units="units"
expires_after="2020-02-23">
<obsolete>
Removed 2020.10.20 - no longer in use.
</obsolete>
<owner>wjmaclean@chromium.org</owner>
<summary>
Record whether we unexpectedly encounter an empty gesture queue while
routing gesture events to frames' renderers: true =&gt; empty queue, false
=&gt; non-empty queue.
</summary>
</histogram>
<histogram name="Event.FrameEventRouting.TouchEventAckQueueSize" units="units"
expires_after="2020-07-19">
<obsolete>
2020.10.21 - Removed.
</obsolete>
<owner>wjmaclean@chromium.org</owner>
<owner>kenrb@chromium.org</owner>
<summary>
The size of the TouchEventAckQueue, recorded each time we process an event
ack (the queue usually, but not always, decreases in size during ack
processing). Ideally this queue will operate at length close to zero,
depending on how long it takes for events to travel to a renderer and be
processed and an ack sent back. As the size increases it indicates decreased
responsiveness of renderers with respect to touch events. One purpose of
this metric is to develop a sense of normal queue sizes for different
platforms. Initially we expect queue length to be less than 20 most of the
time, but this is a guess.
</summary>
</histogram>
<histogram name="Event.GestureCreated" enum="UIEventType"
expires_after="2020-03-01">
<owner>kuscher@google.com</owner>
<summary>
The gesture-events recognized and dispatched by the browser gesture
recognizer. This replaces Ash.GestureCreated, which did not record events on
Android and Windows.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.HitTest" enum="EventHitTest" expires_after="2020-05-31">
<obsolete>
Removed in M88.
</obsolete>
<owner>dtapuska@chromium.org</owner>
<summary>
For each hit test, records whether it was a hit or miss, and why.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.HitTestValidity" enum="EventHitTestValidity"
expires_after="M85">
<owner>dtapuska@chromium.org</owner>
<summary>
For hit tests that are validated, records whether it was correct or not, and
why.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.HitTestValidityScore" enum="EventHitTestValidityScore"
expires_after="M85">
<owner>dtapuska@chromium.org</owner>
<summary>
For hit tests that are invalid, records the score (a series of bits
indicating what was matched and what wasn't).
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.InputEventPrediction.Scroll.Frame{ScoreType}"
units="pixels" expires_after="M97">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<summary>
Overshoot distance in pixels between a predicted scroll position and the
corresponding interpolated real scroll position that occurred at the frame
time.
The difference between {ScoreType} and Frame{ScoreType} is the former uses
prediction time and the later uses frame time.
Team: input-dev@chromium.org.
</summary>
<token key="ScoreType">
<variant name="OverPrediction" summary="Positive score values"/>
<variant name="PredictionScore" summary="Score abolute value"/>
<variant name="UnderPrediction" summary="Negative score values"/>
</token>
</histogram>
<histogram name="Event.InputEventPrediction.Scroll.PredictionJitter"
units="pixels" expires_after="2022-05-08">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<summary>
Euclidean distance in pixels between two successive variations of touch
scroll deltas which are the difference between a predicted scroll position
and its corresponding interpolated real position that occurred at prediction
time.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.InputEventPrediction.Scroll.VisualJitter" units="pixels"
expires_after="2022-05-08">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<summary>
Euclidean distance in pixels between two successive variations of touch
scroll deltas which are the difference between a predicted scroll position
and the interpolated real position that occurred at frame time.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.InputEventPrediction.Scroll.WrongDirection"
enum="Boolean" expires_after="M97">
<obsolete>
Removed 2021-12-02.
</obsolete>
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<summary>
Boolean that indicates whether the prediction is in the same direction as
the real trajectory at the same prediction time. True means the direction is
not the same (wrong direction).
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.InputEventPrediction.Scroll.{ScoreType}" units="pixels"
expires_after="M97">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<summary>
Overshoot distance in pixels between a predicted scroll position and the
corresponding interpolated real scroll position that occurred at the frame
time.
Team: input-dev@chromium.org.
</summary>
<token key="ScoreType">
<variant name="OverPrediction" summary="Positive score values"/>
<variant name="PredictionScore" summary="Score abolute value"/>
<variant name="UnderPrediction" summary="Negative score values"/>
</token>
</histogram>
<histogram name="Event.Jank.ScrollUpdate.TotalJankyAndNonJankyDuration"
enum="JankyBoolean" expires_after="2022-11-24">
<owner>nuskos@google.com</owner>
<owner>woa-performance@google.com</owner>
<summary>
Each time a ScrollUpdate event which was displayed on the screen is
processed, an amount of samples equal to the event processing duration in
milliseconds is emitted into the corresponding bucket.
Thus the ratio of the two represents the average amount of time scrolling is
janky.
</summary>
</histogram>
<histogram name="Event.Latency.EndToEnd.KeyPress" units="microseconds"
expires_after="2022-05-22">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a keyboard event and the resulting GPU frame
swap. If no swap was induced by the event, no recording is made. Only
recorded for key presses.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.EndToEnd.Mouse" units="microseconds"
expires_after="2020-11-08">
<owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a mouse event and the resulting GPU frame
swap. If no swap was induced by the event, no recording is made.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.EndToEnd.TouchpadPinch" units="microseconds"
expires_after="2020-10-11">
<owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and the resulting GPU
frame swap. If no swap was induced by the event, no recording is made.
</summary>
</histogram>
<histogram name="Event.Latency.EndToEnd.TouchpadPinch2" units="microseconds"
expires_after="2022-06-05">
<owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and the resulting GPU
frame swap. If no swap was induced by the event, no recording is made.
</summary>
</histogram>
<histogram name="Event.Latency.EventToRender.TouchpadPinch"
units="microseconds" expires_after="M81">
<owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and RenderWidgetHost
sending event to render.
</summary>
</histogram>
<histogram name="Event.Latency.HitTest" units="microseconds"
expires_after="2022-06-05">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Duration of a non-resurive hitTest operation. The hit test is non-recursive
when the AllowChildFrameContent flag is clear. See also
Event.Latency.HitTestRecusrive.
Team: paint-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.HitTestRecursive" units="microseconds"
expires_after="2022-06-05">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Duration of a recursive hitTest operation. The hit test is recursive when
the AllowChildFrameContent flag is set. See also Event.Latency.HitTest.
Team: paint-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.OS" units="microseconds" expires_after="M92">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between input event received by OS and sent to Chrome, recorded for
each event when it is received by Chrome. This is obsoleted by
Event.Latency.OS2 and should be removed after they've been run side-by-side
for M92.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.OS2" units="ms" expires_after="2022-06-12">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between input event received by OS and sent to Chrome, recorded for
each event when it is received by Chrome.
Warning: On Windows, the timestamps of most events come from a clock with a
several msec resolution so will have an abnormal distribution even when
TimeTicks::IsHighResolution returns true. The exception is touch events
which usually come from the high-resolution clock when
TimeTicks::IsHighResolution returns true.
</summary>
</histogram>
<histogram name="Event.Latency.OS_NO_VALIDATION.POSITIVE" units="ms"
expires_after="2021-08-09">
<owner>sullivan@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
For Mac, a version of Event.Latency.OS that has the positive values it would
contain if ValidateEventTimeClock() were not called on the timestamps.
This metric is intended to debug http://crbug.com/1039833 where very high
numbers are seen for PageLoad.InputDelay3. The units of this metric are the
same as PageLoad.InputDelay3 for consistency while debugging.
</summary>
</histogram>
<histogram name="Event.Latency.OS_WIN.HIGH_RES" units="ms"
expires_after="2021-12-01">
<obsolete>
Removed 2021-04-22 - replaced by Event.Latency.OS2.
</obsolete>
<owner>joenotcharles@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Experimental Windows-only histogram similar to Event.Latency.OS, but
recorded only for MOUSE_PRESSED, KEY_PRESSED and TOUCH_PRESSED events and
including the true time between when the event is generated by the OS and
when it is received by Chrome.
On Windows, ui::Event structures include a timestamp based on the time the
event is received, not when it is generated, so the cross-platform
Event.Latency.OS histograms which are based on this timestamp are wrong.
This metric is only reported from clients with high-resolution clocks.
Clients with low-resolution clocks record Event.Latency.OS_WIN.LOW_RES
instead. Once we validate that there is no difference between the two
metrics and all is working as expected we will combine them into a single
cross-platform event latency metric.
</summary>
</histogram>
<histogram name="Event.Latency.OS_WIN.LOW_RES" units="ms"
expires_after="2021-12-01">
<obsolete>
Removed 2021-04-22 - replaced by Event.Latency.OS2.
</obsolete>
<owner>joenotcharles@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Experimental Windows-only histogram similar to Event.Latency.OS, but
recorded only for MOUSE_PRESSED, KEY_PRESSED and TOUCH_PRESSED events and
including the true time between when the event is generated by the OS and
when it is received by Chrome.
On Windows, ui::Event structures include a timestamp based on the time the
event is received, not when it is generated, so the cross-platform
Event.Latency.OS histograms which are based on this timestamp are wrong.
This metric is only reported from clients with low-resolution clocks.
Clients with high-resolution clocks record Event.Latency.OS_WIN.HIGH_RES
instead. Once we validate that there is no difference between the two
metrics and all is working as expected we will combine them into a single
cross-platform event latency metric.
</summary>
</histogram>
<histogram name="Event.Latency.OS_WIN_IS_VALID" enum="Boolean"
expires_after="2021-12-01">
<obsolete>
Removed 2021-04-22 - replaced by Event.Latency.OS2.
</obsolete>
<owner>joenotcharles@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Windows-only boolean that records whether an input event has a valid OS
timestamp, recorded for MOUSE_PRESSED, KEY_PRESSED and TOUCH_PRESSED events
when they are received by Chrome. This is used to estimate the bias caused
by skipping events with invalid timestamps in Event.Latency.OS_WIN.*.
</summary>
</histogram>
<histogram name="Event.Latency.Scroll.Wheel.TimeToHandled2"
units="microseconds" expires_after="2021-12-19">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the generated
ScrollUpdate gesture event is handled on main/impl thread (specified by
suffix). If no swap was induced by the ScrollUpdate gesture event, no
recording is made. Unlike Event.Latency.ScrollUpdate.Wheel.TimeToHandled2
this metric includes the first GSU of every scrolling sequence as well.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.Scroll.Wheel.TimeToScrollUpdateSwapBegin2"
units="microseconds" expires_after="2020-06-21">
<obsolete>
Removed 2021-01-14 - replaced by Event.Latency.Scroll(Begin|Update).Wheel.*.
</obsolete>
<owner>flackr@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and start of the frame swap
on the GPU service caused by the generated ScrollUpdate gesture event. If no
swap was induced by the event, no recording is made. Unlike
Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2 this metric
includes the first GSU of every scrolling sequence as well.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the display compositor receives the notification of the first
ScrollUpdate gesture event in a given scroll gesture event sequence with
scrollbar source induced renderer swap and GPU starts to swap. The name
contains BrowserNotified for consistency with the existing
ScrollBegin/ScrollUpdate metrics - historically the display compositor lived
in the browser process.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Scrollbar.GpuSwap2"
units="microseconds" expires_after="2022-08-29">
<owner>flackr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap the first ScrollUpdate gesture event in a
given scroll gesture event sequence with scrollbar source induced frame and
the swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Scrollbar.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the first ScrollUpdate gesture event in a given scroll gesture
event sequence with scrollbar source, is handled on main/impl thread
(specified by suffix) and before renderer starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame (generates compositor
frame) induced by the first ScrollUpdate gesture event in a given scroll
gesture event sequence with scrollbar source, and display compositor
receives the submitted compositor frame. The name contains BrowserNotified
for consistency with the existing ScrollBegin/ScrollUpdate metrics -
historically the display compositor lived in the browser process.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Scrollbar.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a scrollbar event and the first generated
ScrollUpdate gesture event in a given scroll gesture event sequence is
handled on main/impl thread (specified by suffix). If no swap was induced by
the ScrollUpdate gesture event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.TimeToScrollUpdateSwapBegin4"
units="microseconds" expires_after="2022-06-26">
<owner>nzolghadr@chromium.org</owner>
<owner>gerchiko@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Time between initial creation of an input event that resulted in a scrollbar
scroll and the start of the frame swap on the GPU service caused by the
generated ScrollUpdate gesture event if that ScrollUpdate is the first such
event in a given scroll gesture event sequence. If no swap was induced by
the event, no recording is made.
Do not modify this metric in any way without contacting
speed-metrics-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin2"
units="microseconds" expires_after="2022-05-22">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
swap on the GPU service caused by the generated ScrollUpdate gesture event
if that ScrollUpdate is the first such event in a given scroll gesture event
sequence. If no swap was induced by the event, no recording is made. If no
swap was induced by the event, no recording is made.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.TopControlsMoved" enum="Boolean"
expires_after="2020-12-06">
<owner>sadrul@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records whether the browser top-controls (i.e. omnibox, toolbar) moved
because of the scroll-begin event (i.e. the first scroll-update event of
that sequence).
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.AverageLag" units="pixels"
expires_after="M97">
<obsolete>
Removed 2021.06.30 - replaced by AverageLagPresentation, which is more
accurate.
</obsolete>
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag caused by the Gesture Scroll Begin Event. In each touch
interaction there is a GSB followed by multiple Gesture Scroll Updates,
which are separately logged by Event.Latency.ScrollUpdate.Touch.AverageLag.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.AverageLagPresentation"
units="pixels" expires_after="2022-05-01">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag observed in processing the Gesture Scroll Begin Event. In
each touch interaction there is a GSB followed by multiple Gesture Scroll
Updates, which are separately logged by
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Touch.AverageLagPresentation.NoPrediction"
units="pixels" expires_after="2022-11-23">
<owner>flackr@chromium.org</owner>
<owner>sahir.vellani@microsoft.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls if prediction was disabled. Only reports touch
scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag observed in processing the Gesture Scroll Begin Event. In
each touch interaction there is a GSB followed by multiple Gesture Scroll
Updates, which are separately logged by
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Touch.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the browser receives the notification of the first ScrollUpdate
gesture event in a given scroll gesture event sequence with touch source
induced renderer swap and GPU starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.GpuSwap2" units="microseconds"
expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap the first ScrollUpdate gesture event in a
given scroll gesture event sequence with touch source induced frame and the
swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the first ScrollBegin gesture event in a given scroll gesture
event sequence with touch source, is handled on main/impl thread (specified
by suffix) and before renderer starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Touch.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by the first
ScrollUpdate gesture event in a given scroll gesture event sequence with
touch source, and browser receives the swap notification.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the first generated
ScrollBegin gesture event in a given scroll gesture event sequence is
handled on main/impl thread (specified by suffix). If no swap was induced by
the ScrollUpdate gesture event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin4{TopControlsState}"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the start of the frame
swap on the GPU service caused by the generated ScrollUpdate gesture event
if that ScrollUpdate is the first such event in a given scroll gesture event
sequence. If no swap was induced by the event, no recording is made.
Do not modify this metric in any way without contacting
speed-metrics-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution. {TopControlsState}
</summary>
<token key="TopControlsState" variants="TopControlsState">
<variant name=""/>
</token>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Wheel.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-07-03">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the browser receives the notification of the first ScrollUpdate
gesture event in a given scroll gesture event sequence with wheel source
induced renderer swap and GPU starts to swap.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.GpuSwap2" units="microseconds"
expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap the first ScrollUpdate gesture event in a
given scroll gesture event sequence with wheel source induced frame and the
swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the first ScrollUpdate gesture event in a given scroll gesture
event sequence with wheel source, is handled on main/impl thread (specified
by suffix) and before renderer starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollBegin.Wheel.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by the first
ScrollUpdate gesture event in a given scroll gesture event sequence with
wheel source, and browser receives the swap notification.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the first generated
ScrollUpdate gesture event in a given scroll gesture event sequence is
handled on main/impl thread (specified by suffix). If no swap was induced by
the ScrollBegin gesture event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin4"
units="microseconds" expires_after="2022-07-11">
<owner>flackr@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the start of the frame
swap on the GPU service caused by the generated ScrollUpdate gesture event
if that ScrollUpdate is the first such event in a given scroll gesture event
sequence. If no swap was induced by the event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollInertial.Touch.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-19">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the browser receives the notification of a ScrollUpdate gesture
generated from a touchscreen fling induced renderer swap and GPU starts to
swap.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollInertial.Touch.GpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap a ScrollUpdate gesture event generated from
a touchscreen fling induced frame and the swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollInertial.Touch.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between a ScrollUpdate gesture event generated from a touchscreen
fling, is handled on main/impl thread (specified by suffix) and before
renderer starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollInertial.Touch.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by a ScrollUpdate
gesture event generated from a touchscreen fling, and browser receives the
swap notification.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollInertial.Touch.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a ScrollUpdate gesture event generated from
a touchscreen fling is handled on main/impl thread (specified by suffix). If
no swap was induced by the ScrollUpdate gesture event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin4"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a ScrollUpdate gesture event generated from
a touchscreen fling and the start of the frame swap on the GPU service
caused by the generated ScrollUpdate gesture event. If no swap was induced
by the event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollJank" enum="Boolean"
expires_after="2022-06-05">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Tracks janky frames while processing scroll events, which are defined as
frames taking longer than half of vsync interval compared to previous or
next frame.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.JankyDuration" units="ms"
expires_after="2022-05-20">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Total duration (wall time in milliseconds of potentially concurrent events)
of LatencyInfo::GestureScrollUpdate events that are detected as janky during
a particular scroll.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.JankyDurationPercentage" units="%"
expires_after="2022-07-15">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Percentage of duration of scroll events that are detected as janky during a
particular scroll.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.JankyEvents" units="counts"
expires_after="2022-05-20">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Count of LatencyInfo::GestureScrollUpdate events that are detected as janky
during a particular scroll.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the display compositor receives the notification of the first
ScrollUpdate gesture event in a given scroll gesture event sequence with
scrollbar source induced renderer swap and GPU starts to swap. The name
contains BrowserNotified for consistency with the existing
ScrollBegin/ScrollUpdate metrics - historically the display compositor lived
in the browser process.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.GpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap a ScrollUpdate gesture event with scrollbar
source induced frame and the swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with scrollbar source, is
handled on main/impl thread (specified by suffix) and before renderer starts
to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame (generates compositor
frame) induced by the first ScrollUpdate gesture event in a given scroll
gesture event sequence with scrollbar source, and display compositor
receives the submitted compositor frame. The name contains BrowserNotified
for consistency with the existing ScrollBegin/ScrollUpdate metrics -
historically the display compositor lived in the browser process.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of an input event that results in a scrollbar
scroll and the generated ScrollUpdate gesture event is handled on main/impl
thread (specified by suffix). If no swap was induced by the ScrollUpdate
gesture event, no recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.TimeToScrollUpdateSwapBegin4"
units="microseconds" expires_after="2022-06-12">
<owner>flackr@chromium.org</owner>
<owner>arakeri@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Time between initial creation of a scrollbar event and start of the frame
swap on the GPU service caused by the generated ScrollUpdate gesture event.
If no swap was induced by the event, no recording is made. The first GSU of
every scrolling sequence is excluded from this metric.
Do not modify this metric in any way without contacting
speed-metrics-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin2"
units="microseconds" expires_after="2022-06-26">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
swap on the GPU service caused by the generated ScrollUpdate gesture event.
If no swap was induced by the event, no recording is made. The first GSU of
every scrolling sequence is excluded from this metric.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TopControlsMoved" enum="Boolean"
expires_after="2020-08-02">
<owner>sadrul@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records whether the browser top-controls (i.e. omnibox, toolbar) moved
because of the scroll-update event (other than the first update event in the
sequence).
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TotalDuration" units="ms"
expires_after="2022-05-20">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Total duration (wall time in milliseconds of potentially concurrent events)
of LatencyInfo::GestureScrollUpdate events during a particular scroll.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TotalEvents" units="counts"
expires_after="2022-05-20">
<owner>ddrone@google.com</owner>
<owner>chrometto-team@google.com</owner>
<summary>
Count of LatencyInfo::GestureScrollUpdate events during a particular scroll.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLag" units="pixels"
expires_after="M97">
<obsolete>
Removed 2021.06.30 - replaced by AverageLagPresentation, which is more
accurate.
</obsolete>
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag caused by the Gesture Scroll Updates occourring in the
lifetime of a scroll interaction.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLag.{PredictionImpact}"
units="pixels" expires_after="M97">
<obsolete>
Removed 2021.06.30 - replaced by AverageLagPresentation.{PredictionImpact},
which is more accurate.
</obsolete>
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Improvement of prediction in touch lag. It is defined as
(Lag_without_prediction - Lag_with_prediction).
Lag is the distance between the finger position and the rendered position.
When positive, prediction improves touch performance (reduces lag). When
negative, prediction worsens touch performance (increases lag).
The duration of the interaction/interval is either 1s, or the time from when
the user starts scrolling to lifting the finger, whichever is smaller.
Lag_with_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation
Lag_without_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.NoPrediction
Team: input-dev@chromium.org.
</summary>
<token key="PredictionImpact">
<variant name="PredictionNegative" summary="Negative impact values"/>
<variant name="PredictionPositive" summary="Positive impact values"/>
</token>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation"
units="pixels" expires_after="2022-05-08">
<owner>flackr@chromium.org</owner>
<owner>joalmei@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag observed in processing the Gesture Scroll Updates occurring
in the lifetime of a scroll interaction.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.NoPrediction"
units="pixels" expires_after="2022-11-23">
<owner>flackr@chromium.org</owner>
<owner>sahir.vellani@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls if prediction was disabled. Only reports touch
scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
This is the lag observed in processing the Gesture Scroll Updates occurring
in the lifetime of a scroll interaction.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.RemainingLagPercentage"
units="%" expires_after="2022-11-23">
<owner>flackr@chromium.org</owner>
<owner>sahir.vellani@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Percentage of touch lag that prediction wasn't able to remove.
This is the ratio (Lag_with_prediction)/(Lag_without_prediction). Lag is the
average distance between the finger and page positons during touch
scrolling.
0% means all the lag existing before prediction was removed. 100% means that
prediction had no impact. Greater than 100% means that prediction introduced
more lag.
This metric doesn't distinguish between OverPrediction and UnderPrediction.
A same absolute value of OverPrediction or UnderPrediction will result in
the same RemainingLagPercentage value.
Lag_with_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation
Lag_without_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.NoPrediction
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.{PredictionImpact}"
units="pixels" expires_after="2022-11-23">
<owner>flackr@chromium.org</owner>
<owner>sahir.vellani@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Improvement of prediction in touch lag. It is defined as
(Lag_without_prediction - Lag_with_prediction).
Lag is the distance between the finger position and the rendered position.
When positive, prediction improves touch performance (reduces lag). When
negative, prediction worsens touch performance (increases lag).
The duration of the interaction/interval is either 1s, or the time from when
the user starts scrolling to lifting the finger, whichever is smaller.
This metric uses directionless distances, therefore it doesn't distinguish
between OverPrediction and UnderPrediction. A same absolute value of
OverPrediction or UnderPrediction will result in the same PredictionImpact
value.
Lag_with_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation
Lag_without_prediction =
Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.NoPrediction
Team: input-dev@chromium.org.
</summary>
<token key="PredictionImpact">
<variant name="PredictionNegative" summary="Negative impact values"/>
<variant name="PredictionPositive" summary="Positive impact values"/>
</token>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the browser receives the notification of a ScrollUpdate gesture
event with touch source induced renderer swap and GPU starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.GpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap a ScrollUpdate gesture event with touch
source induced frame and the swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with touch source, is handled on
main/impl thread (specified by suffix) and before renderer starts to swap.
This is recorded each time a user touch scroll is swapped to the display.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by ScrollUpdate
gesture event with touch source, and browser receives the swap notification.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the generated
ScrollUpdate gesture event is handled on main/impl thread (specified by
suffix). If no swap was induced by the ScrollUpdate gesture event, no
recording is made.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin4{TopControlsState}"
units="microseconds" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>flackr@chromium.org</owner>
<owner>sullivan@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
<summary>
Time between initial creation of a touch event and start of the frame swap
on the GPU service caused by the generated ScrollUpdate gesture event. If no
swap was induced by the event, no recording is made. The first GSU of every
scrolling sequence is excluded from this metric.
Do not modify this metric in any way without contacting
speed-metrics-dev@chromium.org AND chrome-analysis-team@google.com.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution. {TopControlsState}
</summary>
<token key="TopControlsState" variants="TopControlsState">
<variant name=""/>
</token>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Wheel.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the browser receives the notification of a ScrollUpdate gesture
event with wheel source induced renderer swap and GPU starts to swap.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.GpuSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between gpu starts to swap a ScrollUpdate gesture event with wheel
source induced frame and the swap finishes.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with wheel source, is handled on
main/impl thread (specified by suffix) and before renderer starts to swap.
This is recorded each time the user scrolls the mouse wheel when that frame
is swapped to the display.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Wheel.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by ScrollUpdate
gesture event with wheel source, and browser receives the swap notification.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
units="microseconds" expires_after="2022-06-01">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the generated
ScrollUpdate gesture event is handled on main/impl thread (specified by
suffix). If no swap was induced by the ScrollUpdate gesture event, no
recording is made. The first GSU of every scrolling sequence is excluded
from this metric. This is recorded at the point when the frame has been
swapped to the screen for every wheel scroll except the first one.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin4"
units="microseconds" expires_after="2022-07-11">
<owner>flackr@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and start of the frame swap
on the GPU service caused by the generated ScrollUpdate gesture event. If no
swap was induced by the event, no recording is made. The first GSU of every
scrolling sequence is excluded from this metric.
Team: input-dev@chromium.org.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="Event.LatencyInfo.Debug.SourceIdConsistency"
enum="SourceIdConsistency" expires_after="2020-09-01">
<owner>tommckee@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
When tracking input event latency, we expect to associate some number of
latency records (instances of ui::LatencyInfo) with a CompositorFrame. Each
record is associated to a particular navigation through its ukm::SourceId
property. This histogram tracks how often the records of an individual frame
have varying or invalid source ids. See crbug.com/1062764.
</summary>
</histogram>
<histogram name="Event.MaxDragDistance.{ToolType}" units="dips"
expires_after="2022-03-30">
<owner>mustaq@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
The maximum Euclidean distance (in DIPs, device independent pixels) a
single-pointer gesture travels from its starting position during the period
the gesture has been active. The histogram is measured separately for every
pointer type that can be used in gesture recognition: finger, and pen in
drawing/eraser mode. The type names used here follow the corresponding
labels in |MotionEvent.ToolType|.
</summary>
<token key="ToolType">
<variant name="ERASER"/>
<variant name="FINGER"/>
<variant name="STYLUS"/>
</token>
</histogram>
<histogram name="Event.PageShow.Persisted" enum="EventPageShowPersisted"
expires_after="2022-10-01">
<owner>hajimehoshi@chromium.org</owner>
<owner>fergal@chromium.org</owner>
<summary>
Records whether the pageshow event had its persisted flag set in renderer or
browser. This flag is on if and only if the page is restored from
back-forward cache. This flag is off e.g. during the page load. This is
recorded when pageshow event fires on a main frame in renderer, or when
browser triggers this event on a main frame. This was a boolean on M95 and
before, is extended to an enum EventPageShoerPersisted as of M96.
</summary>
</histogram>
<histogram name="Event.PageShow.Persisted.Termination.Normal.Time" units="ms"
expires_after="2022-10-01">
<owner>hajimehoshi@chromium.org</owner>
<owner>fergal@chromium.org</owner>
<summary>
When we send a PageLifecycleState update that should trigger a pageshow
event with its persisted flag set and then the renderer exits normally, this
records the time interval between sending the update and exiting. This is
temporary debugging for https://crbug.com/1234634.
</summary>
</histogram>
<histogram name="Event.PageShow.Persisted.Termination.Status" units="status"
expires_after="2022-10-01">
<owner>hajimehoshi@chromium.org</owner>
<owner>fergal@chromium.org</owner>
<summary>
When we send a PageLifecycleState update that should trigger a pageshow
event with its persisted flag set and then the renderer exits, this records
the status of the process. This is an enum (base::TerminationStatus in
base/process/kill.h) but the values vary by platform so we cannot use a
regular enum metric. This is temporary debugging for
https://crbug.com/1234634.
</summary>
</histogram>
<histogram name="Event.PageShow.Persisted.Termination.Unexpected.Time"
units="ms" expires_after="2022-10-01">
<owner>hajimehoshi@chromium.org</owner>
<owner>fergal@chromium.org</owner>
<summary>
When we send a PageLifecycleState update that should trigger a pageshow
event with its persisted flag set and then the renderer exits unexpectedly,
this records the time interval between sending the update and exiting. This
is temporary debugging for https://crbug.com/1234634.
</summary>
</histogram>
<histogram name="Event.PassiveListeners" enum="EventResultType"
expires_after="2022-06-12">
<owner>dtapuska@chromium.org</owner>
<summary>
The result of handling of MouseWheel, TouchStart, TouchMove, TouchEnd events
in the renderer.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.SingleTapType" enum="TapDelayType" expires_after="M97">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
On non-mobile sites, gesture taps are delayed to prevent double taps from
sending a click event. This stat counts the number of taps that are delayed
by the double-tap delay versus those that are sent immediately on mobile
sites.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Touch.FilteredAtPassthroughQueue"
enum="EventPreFilterResult" expires_after="2020-03-22">
<owner>charliea@chromium.org</owner>
<owner>nzolghadr@chromium.org</owner>
<summary>
Whether a given touch event is filtered by the passthrough touch event queue
or not. If the event was filtered, a reason is given. Potential reasons for
filtering include the page not having any registered touch handlers and the
renderer process not responding to previous touch events.
Team: input-dev@chromium.org
</summary>
</histogram>
<histogram name="Event.Touch.GestureTarget" enum="BrowserGestureActionType"
expires_after="2020-06-28">
<owner>kuscher@google.com</owner>
<owner>rbyers@chromium.org</owner>
<summary>
The gesture-events recognized and dispatched for UI components owned by the
browser. This histogram was created as part of separating gesture events
between the browser and Ash (crbug.com/826476). The enums are extracted from
Ash.GestureTarget.
</summary>
</histogram>
<histogram name="Event.Touch.TimedOutOnDesktopSite" enum="BooleanTimedOut"
expires_after="2021-08-15">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
On non-mobile-optimized (desktop) sites, whether the ack response from the
renderer for any event in a contiguous touch sequence exceeds the
desktop-specific timeout threshold.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.Touch.TimedOutOnMobileSite" enum="BooleanTimedOut"
expires_after="2021-08-15">
<owner>flackr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
On mobile-optimized sites, whether the ack response from the renderer for
any event in a contiguous touch sequence exceeds the mobile-specific timeout
threshold.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.TouchDuration" units="ms" expires_after="M77">
<obsolete>
Removed 2021.03.30 - no longer in use.
</obsolete>
<owner>kuscher@google.com</owner>
<owner>flackr@chromium.org</owner>
<summary>
The duration of a touch-sequence. Only measured for single finger gestures.
This replaces Ash.TouchDuration2, which did not record events on Android and
Windows.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.TouchMaxDistance" units="pixels" expires_after="M77">
<obsolete>
Removed 2021.03.30 - replaced by Event.MaxDragDistance.*.
</obsolete>
<owner>kuscher@google.com</owner>
<owner>flackr@chromium.org</owner>
<summary>
The maximum euclidean distance in dips (device independent pixel) which a
touch point has travelled away from its starting point. Only measured for
single finger gestures. This replaces Ash.TouchMaxDistance, which did not
record events on Android and Windows.
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram name="Event.TouchSelection.Duration" units="ms" expires_after="M77">
<owner>nzolghadr@chromium.org</owner>
<summary>
Duration of touch selection sequence which finished with the user selecting
one of the text manipulation actions, such as copy, cut, or paste. The
duration is measured from the moment the text selection handles are shown,
and until the action is executed.
</summary>
</histogram>
<histogram name="Event.TouchSelection.EndedWithAction" enum="BooleanSuccess"
expires_after="M77">
<owner>nzolghadr@chromium.org</owner>
<summary>
Whether the touch selection sequence ended with the user selecting one of
the text manipulation actions, such as copy, cut, or paste. after startup).
Sequences ending with such action are considered successful.
</summary>
</histogram>
<histogram name="Event.TouchSelection.WasDraggedDuration" units="ms"
expires_after="M81">
<owner>nzolghadr@chromium.org</owner>
<summary>
Duration of touch selection sequence which involved dragging a text
selection handle. The duration is measured from the moment the text
selection handles are shown, and until they are dismissed.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.BestVerticalClippingPercentage"
units="%" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
Percentage of touch handle height that would be clipped by the viewport in
the best case of flipping or not flipping.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.BottomHandleClippingPercentage"
units="%" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
Percentage of touch handle height that would be clipped by the viewport if
the handle was not vertically flipped.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.FlippingImprovementPercentage"
units="%" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
The difference between the metrics |BottomHandleClippingPercentage| and
|BestVerticalClippingPercentage|. Measures how useful vertical flipping is.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.LeftHandleClippingPercentage"
units="%" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
Percentage of left touch handle width that would be clipped by the viewport
without flipping.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.RightHandleClippingPercentage"
units="%" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
Percentage of right touch handle width that would be clipped by the viewport
without flipping.
</summary>
</histogram>
<histogram name="Event.TouchSelectionHandle.ShouldFlipHandleVertically"
enum="TouchHandleVerticallyFlipped" expires_after="M77">
<owner>amaralp@chromium.org</owner>
<summary>
Whether flipping the handle vertically would result in less clipping.
</summary>
</histogram>
<histogram name="Event.UserActivation.TriggerFor{ActivationGatedApiType}"
enum="UserActivationTriggerEnum" expires_after="2022-06-30">
<owner>mustaq@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Tracks the notification-type for the user activation that resulted in a
successful call for an activation-gated API (of type sticky, transient or
consuming).
</summary>
<token key="ActivationGatedApiType">
<variant name="Consuming"/>
<variant name="Sticky"/>
<variant name="Transient"/>
</token>
</histogram>
<histogram name="Event.VizHitTest.AsyncHitTestReasons"
enum="AsyncHitTestReasons" expires_after="2021-10-10">
<owner>sadrul@chromium.org</owner>
<owner>event-targeting@chromium.org</owner>
<summary>
Tracks the reasons why sychronous hit testing could not be done for each hit
test requests processd by HitTestQuery.
</summary>
</histogram>
<histogram name="Event.VizHitTest.HitTestDataIsEqualAccuracy"
enum="BooleanAccuracy" expires_after="2021-01-03">
<owner>zandershah@google.com</owner>
<owner>event-targeting@chromium.org</owner>
<summary>
Tracks the result of AsyncLayerTreeFrameSink calls to
HitTestRegionList::IsEqual.
</summary>
</histogram>
<histogram name="Event.WaylandDragDrop.IncomingDataTransferTime" units="ms"
expires_after="M90">
<owner>rjkroege@chromium.org</owner>
<owner>adunaev@igalia.com</owner>
<summary>
Delay between the drag coming into the window and the window is actually
notified.
</summary>
</histogram>
<histogram name="EventLatency.TotalLatency" units="microseconds"
expires_after="2023-01-16">
<owner>mohsen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Tracks the total latency of all event types from when the event is generated
until the frame containing updates from that event is presented on the
screen.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="EventLatency.{EventType}.{Breakdown}" units="microseconds"
expires_after="2023-01-16">
<owner>mohsen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Tracks {Breakdown} for {EventType}.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
<token key="EventType" variants="EventLatencyEventType"/>
<token key="Breakdown" variants="EventLatencyBreakdown"/>
</histogram>
<histogram name="EventLatency.{PinchEventType}.{PinchInputType}.{Breakdown}"
units="microseconds" expires_after="2023-01-16">
<owner>mohsen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Tracks {Breakdown} for {PinchEventType} by {PinchInputType}.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
<token key="PinchEventType" variants="EventLatencyPinchEventType"/>
<token key="PinchInputType" variants="EventLatencyPinchInputType"/>
<token key="Breakdown" variants="EventLatencyBreakdown"/>
</histogram>
<histogram name="EventLatency.{ScrollEventType}.{ScrollInputType}.{Breakdown}"
units="microseconds" expires_after="2023-01-16">
<owner>mohsen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Tracks {Breakdown} for {ScrollEventType} by {ScrollInputType}.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
<token key="ScrollEventType" variants="EventLatencyScrollEventType"/>
<token key="ScrollInputType" variants="EventLatencyScrollInputType"/>
<token key="Breakdown" variants="EventLatencyBreakdown">
<variant name="TotalLatencyToSwapBegin"
summary="total latency from when the event is generated until the
gpu-swap is started"/>
<variant name="TotalLatencyToSwapEnd"
summary="total latency from when the event is generated until the
gpu-swap is completed">
<obsolete>
Deprecated as of 07/2020. Replaced with TotalLatencyToSwapBegin variant
which measures what we actually intended to measure.
</obsolete>
</variant>
</token>
</histogram>
</histograms>
</histogram-configuration>