<!--
Copyright 2020 The Chromium Authors
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 Blink 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
[email protected].
-->
<histogram-configuration>
<histograms>
<!-- LINT.IfChange(BlinkRequestDestination) -->
<variants name="BlinkRequestDestination">
<variant name="audio"/>
<variant name="audioworklet"/>
<variant name="document"/>
<variant name="embed"/>
<variant name="empty"/>
<variant name="fencedframe"/>
<variant name="font"/>
<variant name="frame"/>
<variant name="iframe"/>
<variant name="image"/>
<variant name="manifest"/>
<variant name="object"/>
<variant name="paintworklet"/>
<variant name="report"/>
<variant name="script"/>
<variant name="serviceworker"/>
<variant name="sharedworker"/>
<variant name="style"/>
<variant name="track"/>
<variant name="video"/>
<variant name="webbundle"/>
<variant name="worker"/>
<variant name="xslt"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/page/histograms.xml:BlinkRequestDestination) -->
<variants name="PreloadTrigger">
<variant name="" summary="All preloads"/>
<variant name=".LinkPreload"
summary="Preloads created by link preload, normally developer initiated
preloads"/>
<variant name=".NoLinkPreload"
summary="Preloads created by non link preload, normally browser
initiated preloads"/>
</variants>
<variants name="ResourceType">
<variant name="Audio" summary="Audio"/>
<variant name="CSSStyleSheet" summary="CSS Style Sheet"/>
<variant name="Dictionary" summary="Dictionary"/>
<variant name="Font" summary="Font"/>
<variant name="Image" summary="Image"/>
<variant name="LinkPrefetch" summary="Link Prefetch"/>
<variant name="Manifest" summary="Manifest"/>
<variant name="Mock" summary="Mock"/>
<variant name="Raw" summary="Raw"/>
<variant name="Script" summary="Script"/>
<variant name="SpeculationRules" summary="Speculation Rules"/>
<variant name="SVGDocument" summary="SVG Document"/>
<variant name="TextTrack" summary="Text Track"/>
<variant name="Video" summary="Video"/>
<variant name="XSLStyleSheet" summary="XSL Style Sheet"/>
</variants>
<variants name="ScreenOrientation">
<variant name=".Landscape" summary="Landscape"/>
<variant name=".Portrait" summary="Portrait"/>
</variants>
<histogram name="Blink.Accessibility.Bundle" enum="AccessibilityModeBundleEnum"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when combinations of mode flags are set. Records when the
accessibility mode flag changes and aligns with one of the common (named)
flag bundles. Bundles that do not match a named set fall into the unnamed
bucket.
</summary>
</histogram>
<histogram name="Blink.Accessibility.ModeFlag" enum="AccessibilityModeFlagEnum"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether individual accessibility mode flags are set. Recorded when
each mode flag is flipped from false to true. Only tracks usage within web
content.
</summary>
</histogram>
<histogram name="Blink.Accessibility.NumTreeUpdatesQueuedBeforeLayout"
units="updates" expires_after="2023-03-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many tree updates were queued at the time updates are being
processed after layout. If we are trying to process too many updates at
once, we should investigate how we might be able to merge similar updates
without losing important information.
</summary>
</histogram>
<histogram base="true" name="Blink.Accessibility.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating accessibility in the Blink document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram
name="Blink.AnchorElementInteractionTracker.ClickDistanceFromPreviousPointerDown{orientation}"
units="%" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the vertical distance of a clicked anchor from the second last
pointerdown (the last pointerdown would be the one that initiated the
click). The value is normalized and recorded as a percentage of screen size,
and is scaled to accomodate negative distances. A value below 50 indicates
that the click happened above the previous pointerdown by ~(100 - 2X)%. A
value above 50 indicates that the click happened below the previous
pointerdown by ~(2X - 100)%.
This is only recorded when the screen is in the "{orientation}"
orientation, and is recorded after an anchor element click. It is only
recorded if a pointerdown was seen prior to the click.
</summary>
<token key="orientation" variants="ScreenOrientation"/>
</histogram>
<histogram
name="Blink.AnchorElementInteractionTracker.ClickLocationY{orientation}"
units="%" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the vertical distance from the top of the screen (y-coordinate) of a
clicked anchor. The value is normalized and recorded as a percentage of the
screen size.
This is only recorded when the screen is in the "{orientation}"
orientation, and is recorded after every anchor element click.
</summary>
<token key="orientation" variants="ScreenOrientation"/>
</histogram>
<histogram base="true"
name="Blink.AnchorElementMetricsIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is for gathering information about anchor
elements within the visible viewport. Recorded when an intersection
observation attributed to anchor element metrics is updated.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.Animate.UpdateTime" units="microseconds"
expires_after="2025-06-01">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent processing main frame animations during a main frame update.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note that the histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes
before 105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful
when aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.Animation.CompositedAnimationFailureReason"
enum="CompositorAnimationsFailureReason" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reasons an Animation is not suitable for running on the compositor thread.
Note that a given Animation may have more than one reason, so this histogram
cannot be used to determine the overall rate of 'composited' vs
'noncomposited' animations. Also note that "failure" to run on the
compositor thread is actually good when the animation can be skipped
entirely. Prior to M124, this case was restricted to composited properties
that had no visual effect. This failure reason (bucket 18) has been
generalized to capture cases where the animation can be optimized out even
if having non-compositable properties. These animations will not run on the
compositor and only tick on main at the boundaries of the active phase.
</summary>
</histogram>
<histogram name="Blink.Animation.SDA.BoundaryMisalignment"
units="16ths of a pixel" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Unexpected misalignment of a phase boundary when aligned to a scroll-
boundary measured in 16ths of a pixel. Recorded each time phase calculation
determines the animation is in the before or after phase when a scroll-
driven animation has determined that the before-active or active-after
boundary is aligned to the bounds of the scroll range.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DLayerBridge.Compression.DecompressionTime"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a compressed hibernated 2D canvas snapshot is decompressed, duration in
ms. Reported each time a canvas snapshot is decompressed.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DLayerBridge.Compression.Ratio" units="%"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a hibernated 2D canvas snapshot is compressed, the compression ratio
achieved. Reported each time a canvas snapshot is compressed.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DLayerBridge.Compression.SnapshotSizeKb"
units="KB" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a hibernated 2D canvas snapshot is compressed, the size before
compression. Reported each time a canvas snapshot is compressed.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DLayerBridge.Compression.ThreadTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a hibernated 2D canvas snapshot is compressed, the CPU time it takes to
compress it. Reported each time a canvas snapshot is compressed.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DLayerBridge.WillReadFrequently"
enum="BooleanWillReadFrequently" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of the willReadFrequently flag upon creation of a Canvas2D
layer bridge, as this is the moment when it determines whether the canvas
will be accelerated.
</summary>
</histogram>
<histogram name="Blink.Canvas.2DPrintingAsVector" enum="BooleanSuccess"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if a Canvas is being printed as a vector or as an image.
</summary>
</histogram>
<histogram name="Blink.Canvas.ContentChangeMode"
enum="BooleanContentChangeMode" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the contents in the canvas buffer needed to be preserved via
a copy when replacing the target buffer for drawing a new frame. This metric
is recorded each time the target buffer needs to be replaced. It's recorded
once per frame.
</summary>
</histogram>
<histogram name="Blink.Canvas.CreateImageBitmapSource"
enum="CanvasCreateImageBitmapSource" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The source from which an ImageBitmap is created by a createImageBitmap call.
</summary>
</histogram>
<histogram name="Blink.Canvas.GetImageData.WillReadFrequently"
enum="BooleanWillReadFrequently" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of the willReadFrequently flag during Canvas2D readback.
</summary>
</histogram>
<histogram name="Blink.Canvas.GPUFallbackToCPU"
enum="CanvasGPUFallbackToCPUScenario" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Logs the occurrences of canvas fallback from GPU to CPU.</summary>
</histogram>
<histogram name="Blink.Canvas.HasRendered" enum="Boolean"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the canvas has been rendered at least once. Recorded on disposal.
</summary>
</histogram>
<histogram name="Blink.Canvas.HibernationEvents" enum="CanvasHibernationEvent"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the occurrence of events related to 2D canvas GPU resource
hibernation.
</summary>
</histogram>
<histogram name="Blink.Canvas.MaximumInflightResources"
units="canvas resources" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the maximum number or canvas resources used at any one time by a
canvas resource provider. Logged in the destructor of
CanvasResourceProvider.
</summary>
</histogram>
<histogram name="Blink.Canvas.MaximumStateStackDepth" units="stack depth"
expires_after="2024-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the maximum depth of the state stack over the lifetime of a 2d
rendering context. Metric is recorded once per instance of
CanvasRenderingContext2D, OffscreenRenderingContext2D, and
PaintRenderingContext2D; at context destruction time.
</summary>
</histogram>
<histogram name="Blink.Canvas.NumCanvasesPerPage" units="canvases"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a Document is shutdown, reports the number of canvases on that page.
</summary>
</histogram>
<histogram name="Blink.Canvas.OverdrawOp" enum="CanvasOverdrawOp"
expires_after="2024-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts 2d canvas draw operations that trigger the overdraw optimization.
</summary>
</histogram>
<histogram name="Blink.Canvas.RasterDuration{BlinkCanvasRasterDurationType}"
units="microseconds" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the CPU, GPU and combined raster time for a random sampling of
canvas frames for accelerated and deferred canvases. Records wall time for a
random sampling of unaccelerated canvases.
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. {BlinkCanvasRasterDurationType}
</summary>
<token key="BlinkCanvasRasterDurationType">
<variant name=""/>
<variant name=".Accelerated.CPU" summary=""/>
<variant name=".Accelerated.GPU" summary=""/>
<variant name=".Accelerated.Total" summary=""/>
<variant name=".Unaccelerated" summary=""/>
</token>
</histogram>
<histogram
name="Blink.Canvas.RequestedImageMimeTypes{CanvasRequestedImageMimeTypeFunctions}"
enum="RequestedImageMimeType" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the occurence of image file formats passed into toDataURL and toBlob
functions in canvas. {CanvasRequestedImageMimeTypeFunctions}
</summary>
<token key="CanvasRequestedImageMimeTypeFunctions">
<variant name="_convertToBlobPromise"
summary="Image formats passed to OffscreenCanvas.convertToBlob
(promise)"/>
<variant name="_toBlobCallback"
summary="Image formats passed to canvas.toBlob (callback)"/>
<variant name="_toDataURL"
summary="Image formats passed to canvas.toDataURL"/>
</token>
</histogram>
<histogram name="Blink.Canvas.ResourceProviderIsAccelerated"
enum="BooleanHardwareAccelerated" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Logs if the canvas resource provider is accelerated or not.</summary>
</histogram>
<histogram name="Blink.Canvas.ResourceProviderType"
enum="CanvasResourceProviderType" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the type of resource provider used for a canvas.</summary>
</histogram>
<histogram name="Blink.Canvas.ResourceProviderUsage"
enum="CanvasResourceProviderUsage" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the requested resource usage for a canvas resource provider.
</summary>
</histogram>
<histogram name="Blink.Canvas.SqrtNumberOfPixels" units="sqrt(pixels)"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Stores the square root of the number of pixels in a new or resized offscreen
canvas. Emitted from CanvasRenderingContextHost::RecordCanvasSizeToUMA.
</summary>
</histogram>
<histogram base="true" name="Blink.Canvas.ToBlob.IdleTaskStatus"
enum="IdleTaskStatus" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the status of the idle task when finishing a toBlob call.
In addition, metric values from OffscreenCanvas.convertToBlob API call are
also gathered into this histogram, because the logic flow is exactly the
same as canvas.toBlob. It's worth to note that the values can come from idle
tasks on either main or worker thread.
</summary>
</histogram>
<histogram name="Blink.Canvas.ToBlob.InitialEncodingDelay.{Type}"
units="microseconds" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A new version of "Blink.Canvas.ToBlob.InitiateEncodingDelay"
(which will be allowed to expire) which allows for times >10ms.
This metric measures the time spent from initiating image encoding (jpeg or
png) on idle task to the actual execution time of initiation, as part of a
canvas.toBlob API call.
This metric is useful in helping us adjust the IdleTaskStartTimeoutDelay in
canvas.toBlob. When the initialization idle task is delayed for longer than
IdleTaskStartTimeoutDelay, the browser will switch to a non-idle task to
force initialization and encoding to occur on the main thread.
In addition, metric values from OffscreenCanvas.convertToBlob API call are
also gathered into this histogram, because the logic flow is exactly the
same as canvas.toBlob. It's worth to note that the values can come from idle
tasks on either main or worker thread.
Note: This metric drops reports on clients with low-resolution clocks, which
means these reports will be biased against a portion of the population on
Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
</summary>
<token key="Type">
<variant name="JPEG"/>
<variant name="PNG"/>
</token>
</histogram>
<histogram name="Blink.Canvas.ToBlob.ScaledDuration{BlinkCanvasToBlobType}"
units="microseconds/sqrt(pixels)" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time in microseconds spent on the 2D canvas toBlob API call, divided by the
square root of the total number of pixels of the canvas.
In addition, metric values from OffscreenCanvas.convertToBlob API call are
also gathered into this histogram, because the logic flow is exactly the
same as canvas.toBlob. It's worth to note that the values can come from idle
tasks on either main or worker thread.
Note: This metric drops reports on clients with low-resolution clocks, which
means these reports will be biased against a portion of the population on
Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
{BlinkCanvasToBlobType}
</summary>
<token key="BlinkCanvasToBlobType">
<variant name=".JPEG" summary=""/>
<variant name=".PNG" summary=""/>
<variant name=".WEBP" summary=""/>
</token>
</histogram>
<histogram name="Blink.Canvas.ToBlob.TotalEncodingDelay.{Type}"
units="microseconds" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A new version of "Blink.Canvas.ToBlob.InitiateEncodingDelay"
(which will be allowed to expire) which allows for times >10ms.
This metric measures the total time spent on completing encoding all the
rows of an image (jpeg or png), as part of a canvas.toBlob API call.
Encoding occurs during one or more idle periods on the main thread and the
waiting time of the next idle period is included in the measurement. If the
code has swtiched to force encoding path, we will not measure the delay in
this metric.
This metric is useful in helping us adjust the IdleTaskCompleteTimeoutDelay
in canvas.toBlob. When the encoding idle task is delayed for longer than
IdleTaskCompleteTimeoutDelay, the browser will switch to a non-idle task to
force encoding to happen on the main thread.
In addition, metric values from OffscreenCanvas.convertToBlob API call are
also gathered into this histogram, because the logic flow is exactly the
same as canvas.toBlob. It's worth to note that the values can come from idle
tasks on either main or worker thread.
Note: This metric drops reports on clients with low-resolution clocks, which
means these reports will be biased against a portion of the population on
Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
</summary>
<token key="Type">
<variant name="JPEG"/>
<variant name="PNG"/>
</token>
</histogram>
<histogram
name="Blink.Canvas.ToDataURLScaledDuration{BlinkCanvasToDataURLMimeType}"
units="microseconds/sqrt(pixels)" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent on 2D canvas toDataURL API call divided by the square root of the
total number of pixels of the image. Smaller is faster.
The idea behind this unit is that the bigger the area of a canvas the longer
the operation ToDataURL takes, so we want a way to measure the overall
performance regardless of the size of the canvas.
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. {BlinkCanvasToDataURLMimeType}
</summary>
<token key="BlinkCanvasToDataURLMimeType">
<variant name=".JPEG" summary=""/>
<variant name=".PNG" summary=""/>
<variant name=".WEBP" summary=""/>
</token>
</histogram>
<histogram name="Blink.Canvas.VectorPrintFallbackReason"
enum="CanvasResourceProviderFlushReason" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The reason why printing a 2D canvas failed to use vector printing.
</summary>
</histogram>
<histogram name="Blink.Canvas.WebGLANGLEImplementation"
enum="WebGLANGLEImplementation" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Distribution of WebGL1 and WebGL2 contexts and their ANGLE implementation.
Recorded at first draw call time for each context.
</summary>
</histogram>
<histogram name="Blink.Clipboard.Read.NumberOfFormats" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reports the number of formats read from the system clipboard when
navigator.clipboard.read() is called.
</summary>
</histogram>
<histogram name="Blink.CommitDocumentLoaderTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to commit a new document in Blink. Collected once
per navigation when a frame is loaded.
</summary>
</histogram>
<histogram base="true" name="Blink.CompositingCommit.UpdateTime"
units="microseconds" expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating and pushing layers at the end of the paint step in the
Blink document lifecycle. This is implemented by PaintArtifactCompositor.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.CompositingInputs.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating compositing inputs in the Blink document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.Compression.CompressionStream.Format"
enum="CompressionStreamsFormat" expires_after="2023-03-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Compression format passed to the constructor of the JavaScript API
"CompressionStream", which is used for lossless compression of
arbitrary binary data. Recorded once per call to the constructor. This
measures which compression formats are most commonly used in the wild.
</summary>
</histogram>
<histogram name="Blink.Compression.DecompressionStream.Format"
enum="CompressionStreamsFormat" expires_after="2023-03-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Compression format passed to the constructor of the JavaScript API
"DecompressionStream", which is used for lossless decompression of
arbitrary binary data. Recorded once per call to the constructor. This
measures which compression formats are most commonly used in the wild.
</summary>
</histogram>
<histogram base="true" name="Blink.ContentDocumentUpdate.UpdateTime"
units="microseconds" expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent preparing the document for a canvas draw, SVG image draw or
plugin during a main frame update. Includes time spent in style update and
layout.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.ContextMenu.ImageSelection.Depth" units="count"
expires_after="2023-08-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The depth of the discovered image node in the hit test list when performing
a penetrating image selection search.
Only recorded when a user long presses or right clicks a document (and an
image is found).
</summary>
</histogram>
<histogram name="Blink.ContextMenu.ImageSelection.ElapsedTime"
units="microseconds" expires_after="2023-08-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time it took to iterate through the dom looking for an image
node.
Only recorded when a user long presses or right clicks a document.
Note: This metric drops reports on clients with low-resolution clocks, which
means these reports will be biased against a portion of the population on
Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
</summary>
</histogram>
<histogram name="Blink.ContextMenu.ImageSelection.Outcome"
enum="ImageSelectionOutcome" expires_after="2024-03-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of an image selection search that may or may not trigger the
context menu.
Only recorded when a user long presses or right clicks a document (and an
image is found).
</summary>
</histogram>
<histogram name="Blink.ContextMenu.ImageSelection.RetrievalOutcome"
enum="ImageSelectionRetrievalOutcome" expires_after="2023-08-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of a follow up retrieval of an image node after a selection has
occurred, which occurs asynchronously and thus could be unsuccessful due to
changes that may occur between the initial hit test and the retrieval.
Only recorded when a user long presses or right clicks a document (and an
image is found).
</summary>
</histogram>
<histogram name="Blink.CSSStyleSheetResource.ParseTime" units="microseconds"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent for parsing the stylesheet. Recorded when the stylesheet finishes
loading and does not have cached stylesheet contents.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.CullRect.UpdateTime" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating the cull rect in the Blink document lifecycle.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.DecodedImage.AvifDensity.Count.{ImageArea}"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/platform/image-decoders/avif/OWNERS
</owner>
<summary>
The number of images per image density measured in 0.01 bits per pixel for
image size in {ImageArea} megapixels. This is logged once per image load
after the whole image is loaded and only for 8-bit AVIF color still images
without alpha.
</summary>
<token key="ImageArea">
<variant name="0.1MP" summary="(0.0, 0.1]"/>
<variant name="0.2MP" summary="(0.1, 0.2]"/>
<variant name="0.3MP" summary="(0.2, 0.3]"/>
<variant name="0.4MP" summary="(0.3, 0.4]"/>
<variant name="0.5MP" summary="(0.4, 0.5]"/>
<variant name="0.6MP" summary="(0.5, 0.6]"/>
<variant name="0.7MP" summary="(0.6, 0.7]"/>
<variant name="0.8MP" summary="(0.7, 0.8]"/>
<variant name="0.9MP" summary="(0.8, 0.9]"/>
<variant name="01MP" summary="(0.9, 1]"/>
<variant name="02MP" summary="(1, 2]"/>
<variant name="03MP" summary="(2, 3]"/>
<variant name="04MP" summary="(3, 4]"/>
<variant name="05MP" summary="(4, 5]"/>
<variant name="06MP" summary="(5, 6]"/>
<variant name="07MP" summary="(6, 7]"/>
<variant name="08MP" summary="(7, 8]"/>
<variant name="09MP" summary="(8, 9]"/>
<variant name="10MP" summary="(9, 10]"/>
<variant name="11MP" summary="(10, 11]"/>
<variant name="12MP" summary="(11, 12]"/>
<variant name="13MP" summary="(12, 13]"/>
<variant name="14+MP" summary="(13, inf)"/>
</token>
</histogram>
<histogram name="Blink.DecodedImage.AvifDensity.KiBWeighted2"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/platform/image-decoders/avif/OWNERS
</owner>
<summary>
The compressed image size in KiB per image density measured in 0.01 bits per
pixel. This is logged once per image load after the whole image is loaded
and only for 8-bit AVIF still images with at least 100 pixels on the
smallest dimension (width or height). The reported count for a sample
represents the image size rounded to the nearest KiB.
</summary>
</histogram>
<histogram name="Blink.DecodedImage.JpegDensity.Count.{ImageArea}"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner>
<summary>
The number of images per image density measured in 0.01 bits per pixel for
image size in {ImageArea} megapixels. This is logged once per image load
after the whole image is loaded and only for JPEG non-grayscale images.
</summary>
<token key="ImageArea">
<variant name="0.1MP" summary="(0.0, 0.1]"/>
<variant name="0.2MP" summary="(0.1, 0.2]"/>
<variant name="0.3MP" summary="(0.2, 0.3]"/>
<variant name="0.4MP" summary="(0.3, 0.4]"/>
<variant name="0.5MP" summary="(0.4, 0.5]"/>
<variant name="0.6MP" summary="(0.5, 0.6]"/>
<variant name="0.7MP" summary="(0.6, 0.7]"/>
<variant name="0.8MP" summary="(0.7, 0.8]"/>
<variant name="0.9MP" summary="(0.8, 0.9]"/>
<variant name="01MP" summary="(0.9, 1]"/>
<variant name="02MP" summary="(1, 2]"/>
<variant name="03MP" summary="(2, 3]"/>
<variant name="04MP" summary="(3, 4]"/>
<variant name="05MP" summary="(4, 5]"/>
<variant name="06MP" summary="(5, 6]"/>
<variant name="07MP" summary="(6, 7]"/>
<variant name="08MP" summary="(7, 8]"/>
<variant name="09MP" summary="(8, 9]"/>
<variant name="10MP" summary="(9, 10]"/>
<variant name="11MP" summary="(10, 11]"/>
<variant name="12MP" summary="(11, 12]"/>
<variant name="13MP" summary="(12, 13]"/>
<variant name="14+MP" summary="(13, inf)"/>
</token>
</histogram>
<histogram name="Blink.DecodedImage.JpegDensity.KiBWeighted"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The compressed image size in KiB per image density measured in 0.01 bits per
pixel. This is logged once per image load after the whole image is loaded
and only for JPEGs with at least 100 pixels on the smallest dimension (width
or height). The reported count for a sample represents the image size
rounded to the nearest KiB.
</summary>
</histogram>
<histogram name="Blink.DecodedImage.WebPDensity.Count.{ImageArea}"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner>
<summary>
The number of images per image density measured in 0.01 bits per pixel for
image size in {ImageArea} megapixels. This is logged once per image load
after the whole image is loaded and only for WebP lossy still images without
alpha.
</summary>
<token key="ImageArea">
<variant name="0.1MP" summary="(0.0, 0.1]"/>
<variant name="0.2MP" summary="(0.1, 0.2]"/>
<variant name="0.3MP" summary="(0.2, 0.3]"/>
<variant name="0.4MP" summary="(0.3, 0.4]"/>
<variant name="0.5MP" summary="(0.4, 0.5]"/>
<variant name="0.6MP" summary="(0.5, 0.6]"/>
<variant name="0.7MP" summary="(0.6, 0.7]"/>
<variant name="0.8MP" summary="(0.7, 0.8]"/>
<variant name="0.9MP" summary="(0.8, 0.9]"/>
<variant name="01MP" summary="(0.9, 1]"/>
<variant name="02MP" summary="(1, 2]"/>
<variant name="03MP" summary="(2, 3]"/>
<variant name="04MP" summary="(3, 4]"/>
<variant name="05MP" summary="(4, 5]"/>
<variant name="06MP" summary="(5, 6]"/>
<variant name="07MP" summary="(6, 7]"/>
<variant name="08MP" summary="(7, 8]"/>
<variant name="09MP" summary="(8, 9]"/>
<variant name="10MP" summary="(9, 10]"/>
<variant name="11MP" summary="(10, 11]"/>
<variant name="12MP" summary="(11, 12]"/>
<variant name="13MP" summary="(12, 13]"/>
<variant name="14+MP" summary="(13, inf)"/>
</token>
</histogram>
<histogram name="Blink.DecodedImage.WebPDensity.KiBWeighted2"
units="0.01 bits per pixel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner>
<summary>
The compressed image size in KiB per image density measured in 0.01 bits per
pixel. This is logged once per image load after the whole image is loaded
and only for WebP still images with at least 100 pixels on the smallest
dimension (width or height). The reported count for a sample represents the
image size rounded to the nearest KiB.
</summary>
</histogram>
<histogram name="Blink.DecodedImage.WebPFileFormat" enum="WebPFileFormat"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
WebP file format parsed during Blink's header parsing phase (which should
happen only once per image).
</summary>
</histogram>
<histogram name="Blink.DecodedImageType" enum="DecodedImageType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<summary>
Image codec inferred during decode. The histogram is incremented when enough
of the image has been downloaded to infer its width and height. Animated
images are counted only once, regardless of how many frames there are.
</summary>
</histogram>
<histogram name="Blink.DigitalIdentityRequest.InterstitialClosedReason"
enum="DigitalIdentityInterstitialClosedReason" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason that the digital identity interstitial dialog was
dismissed. Recorded when the dialog is dismissed.
</summary>
</histogram>
<histogram name="Blink.DigitalIdentityRequest.Status"
enum="DigitalIdentityRequestStatus" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of a request to the digital identity API. Recorded when
the request completes.
</summary>
</histogram>
<histogram base="true" name="Blink.DisplayLockIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is for Display Locking. Recorded when an
intersection observation is made for the Display Locking reason.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram
name="Blink.DocumentLoader.CommitNavigationToStartLoadingResponse.Time.OutermostMainFrame.NewNavigation.IsHTTPOrHTTPS"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between CommitNavigation to StartLoadingResponse in the renderer
process. This is recorded on each new navigation for http or https URLs in
OutermostMainFrame.
</summary>
</histogram>
<histogram
name="Blink.DocumentLoader.CreateParserPostCommit.Time.OutermostMainFrame.NewNavigation.IsHTTPOrHTTPS"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent processing DocumentLoader::CreateParserPostCommit() in the
renderer process. This is recorded on each new navigation for http or https
URLs in OutermostMainFrame.
</summary>
</histogram>
<histogram name="Blink.EffectiveZoom" units="%" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The EffectiveZoom as reported by ComputedStyle in a Blink renderer. The
value is reported each time the effective zoom is set to a new value. The
maximum zoom reported is 400% to keep the histogram of reasonable size.
</summary>
</histogram>
<histogram name="Blink.Element.Fullscreen.DurationUpTo1H.Popup" units="ms"
expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of a fullscreen session initiated by a fullscreen popup
request, up to 1 hour. The value is reported each time HTML fullscreen mode
exits after it was initiated by a fullscreen popup.
</summary>
</histogram>
<histogram name="Blink.Element.Fullscreen.DurationUpTo1H.RequestFullscreen"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of a fullscreen session initiated by a
element.{webkit}requestFullscreen request, up to 1 hour. The value is
reported each time HTML fullscreen mode exits after it was initiated by
element.{webkit}requestFullscreen. Excludes XR fullscreen.
</summary>
</histogram>
<histogram name="Blink.Experimental.Cookies.CacheLookupResult2"
enum="CookieCacheLookupResult" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>woa-performance@google</owner>
<summary>
Whether a GetCookiesString request for a document returned the same result
as the previous one. This is an experiment to determine the usefulness of a
cookie cache in the Renderer.
A sample is recorded for every GetCookiesString request sent from the
Document owned CookieJar.
</summary>
</histogram>
<histogram name="Blink.Experimental.Cookies.FirstCookieRequest"
enum="FirstCookieRequest" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>chrome-catan@google</owner>
<summary>
Whether the first cookie request is a SET, GET, or a check to determine if
the cookies are enabled. This is an experiment to determine if we should
return the version and/or the cookie string on SET.
A sample is recorded on the first GetCookiesString, SetCookiesString, or
CookiesEnabled request sent from the Document owned CookieJar.
</summary>
</histogram>
<histogram name="Blink.FedCm.AccountChosenPosition.Desktop" units="count"
expires_after="2025-07-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the 0-based position of the account that was selected by the user in
a FedCM dialog. Recorded whenever the user clicks on a clickable account in
the FedCM dialog. Currently only recorded on desktop.
</summary>
</histogram>
<histogram name="Blink.FedCm.AccountLabel.NumMatchingAccounts"
enum="FedCmNumAccounts" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of accounts the match an account label. Records at the
time the accounts received by the FedCM API are filtered.
</summary>
</histogram>
<histogram name="Blink.FedCm.AccountsDialogShown" enum="BooleanHit"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records a 1 each time an accounts dialog is shown.</summary>
</histogram>
<histogram name="Blink.FedCm.AccountsRequestSent" enum="BooleanHit"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a 1 each time a request is sent to the accounts endpoint.
</summary>
</histogram>
<histogram name="Blink.FedCm.AccountsSize.Raw" units="accounts"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the accounts received from the IdP before applying any
filters. Records one sample per accounts fetch if there's at least one
account returned.
</summary>
</histogram>
<histogram name="Blink.FedCm.AccountsSize.ReadyToShow" units="accounts"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the accounts received from the IdP after applying the
filters. Records one sample per accounts fetch if there's at least one
account left after filtering.
</summary>
</histogram>
<histogram name="Blink.FedCm.Android.ActivityDestroyedWhileCctShown"
enum="BooleanHit" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a 1 each time the parent activity is destroyed while the IDP
login/continuation custom tab is shown. Recorded at most once per IDP login
attempt and at most once per IDP continuation popup.
</summary>
</histogram>
<histogram name="Blink.FedCm.ApprovedClientsExistence" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an IDP returns an approved clients list in the response.
Records at most one sample per IDP when the accounts response is parsed.
</summary>
</histogram>
<histogram name="Blink.FedCm.ApprovedClientsSize" units="clients"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the approved clients list returned by IDP if applicable.
Records at most one sample per IDP when the IDP includes `approved_clients`
in the accounts response.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.BlockedByContentSettings"
enum="Boolean" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the FedCM auto re-authn call is blocked because the auto
re-authn content settings permission is disabled. Records at most one sample
per FedCM API with auto re-authn enabled: some failures could occur before
this metric is recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.BlockedByEmbargo" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the FedCM auto re-authn call is blocked because the auto
re-authn is under embargo, i.e. due to cooldown. Records at most one sample
per FedCM API with auto re-authn enabled: some failures could occur before
this metric is recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.BlockedByPreventSilentAccess"
enum="Boolean" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the FedCM auto re-authn call is blocked because
preventSilentAccess() has been called on this site. Records at most one
sample per FedCM API with auto re-authn enabled: some failures could occur
before this metric is recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.ReturningAccounts"
enum="FedCmNumAccounts" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether there was zero, one, or multiple returning accounts when a
site calls the FedCM API with autoReauthn: true. Records at most one sample
per failed API call: some failures could occur before this metric is
recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.Succeeded" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether auto re-authn checks succeeded or not. The count would
provide roughly the number of FedCM re-authn attempts, the true count would
provide the number of times the re-authn UI is shown to the user, and the
false count would provide the number of attempts where auto re-authn was
blocked for some non-network related reason. Records at most one sample per
FedCM API with auto re-authn enabled: some failures could occur before this
metric is recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.AutoReauthn.TimeFromEmbargoWhenBlocked" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the amount of time that has passed from the time the FedCM auto
re-authn API was embargoed to the time in which the next call occurs. Only
records a sample when there is an auto re-authn FedCM API call which is
blocked due to embargo. Samples are exponentially bucketed, with a max
bucket of 10 minutes, the embargo duration (see
`kFederatedIdentityAutoReauthnEmbargoDuration`).
</summary>
</histogram>
<histogram name="Blink.FedCm.Button.AccountChooserResult"
enum="FedCmAccountChooserResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the account chooser in button flow. Recorded once per
user leaving the button flow account chooser. e.g. If the user selects an
account on the account chooser, one sample is recorded. If the user clicks
on the back button in the next dialog, an account chooser is shown again and
leaving records a second sample.
</summary>
</histogram>
<histogram name="Blink.FedCm.CancelReason" enum="FedCmCancelReason"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason that the FedCM dialog was closed (ex user clicked the
dialog close button). Recorded when the FedCM dialog is closed without the
user selecting an account. This includes instances where the close action is
less intentional such as the virtual keyboard showing trigerring the dialog
close.
</summary>
</histogram>
<histogram name="Blink.FedCm.ChooseAnAccountSelected.Desktop" enum="BooleanHit"
expires_after="2025-07-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a 1 each time the "Choose an account" FedCM desktop button
is clicked. This button is only shown in the FedCM UI showing multiple
identity providers.
</summary>
</histogram>
<histogram name="Blink.FedCm.ClosedSheetType.Android" enum="FedCmSheetType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of FedCM Android UI sheet that is being displayed when the
user manually closes it. Records when the user closes this dialog, so at
most once per API call that results in UI being shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.ClosedSheetType.Desktop" enum="FedCmSheetType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of FedCM desktop UI sheet that is being displayed when the
user manually closes it. Records when the user closes this dialog, so at
most once per API call that results in UI being shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.CloseVerifySheet.Android" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the UI that a user is closing is the verify sheet or not on
Android. Records at most one sample per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.CloseVerifySheet.Desktop" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the UI that a user is closing is the verify sheet or not on
desktop. Records at most one sample per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.ContinueOn.PopupWindowResult"
enum="FedCmContinueOnPopupResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the continue_on popup was closed by the user or by the page
finishing the flow. Recorded once per continue_on flow when the window gets
closed (at most once per FedCM API call). If the RP tab/window gets closed
before the popup, this will not get recorded.
</summary>
</histogram>
<histogram name="Blink.FedCm.ContinueOn.PopupWindowStatus"
enum="FedCmContinueOnPopupStatus" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether we could open the continue_on popup or if not, why we
couldn't. Recorded once per continue_on popup request when we receive the
request, at most once per FedCM API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.Disconnect.FrameType"
enum="FedCmRequesterFrameType" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of frame that invokes disconnect(). Records once for each
disconnect() call. Possible values are: main frame, same-site iframe, and
cross-site iframe, where the site of the iframe is compared with the site of
the main frame.
</summary>
</histogram>
<histogram name="Blink.FedCm.DomainHint.NumMatchingAccounts"
enum="FedCmNumAccounts" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of accounts the match a domain hint. Records at the time
the accounts received by the FedCM API are filtered.
</summary>
</histogram>
<histogram name="Blink.FedCm.Error.ErrorDialogResult"
enum="FedCmErrorDialogResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the error dialog. Recorded at most once per API call
when the error dialog is displayed.
</summary>
</histogram>
<histogram name="Blink.FedCm.Error.ErrorDialogType" enum="FedCmErrorDialogType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of error dialog shown. Recorded at most once per API call
</summary>
</histogram>
<histogram name="Blink.FedCm.Error.ErrorUrlType" enum="FedCmErrorUrlType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the error URL is same-origin, cross-origin but same-site or
cross-site with the config URL. Recorded at most once per API call when a
valid error URL is received.
</summary>
</histogram>
<histogram name="Blink.FedCm.Error.TokenResponseType"
enum="FedCmTokenResponseType" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of token response received. Recorded at most once per API
call when a token response received.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSigninRequestInitiatedByUser"
enum="BooleanYesNo" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever we receive an IDP sign-in header (Google-Accounts-SignIn or
IdP-SignIn-Status: action=signin) in response to a non-worker HTTP request,
this records whether there was a transient user activation as indicated by
ResourceRequest::has_user_gesture.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSigninStatus.ClosePopupWindowReason"
enum="FedCmClosePopupWindowReason" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the pop-up window is closed. Recorded once per
opening of a pop-up window.
</summary>
</histogram>
<histogram
name="Blink.FedCm.IdpSigninStatus.IdpClosePopupToBrowserShowAccountsDuration"
units="ms" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when IdentityProvider.close() is called to when an
updated accounts dialog is shown. Recorded once per IdentityProvider.close()
being called given that an accounts dialog is shown. It is not recorded when
the accounts dialog is never shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSigninStatus.MismatchDialogResult"
enum="FedCmMismatchDialogResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the mismatch dialog. Recorded once per the mismatch
dialog being displayed.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSigninStatus.PopupWindowResult"
enum="FedCmPopupWindowResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the IDP sign-in pop-up window. Recorded once per
pop-up window triggered by the user.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSigninStatus.ShowPopupWindowResult"
enum="FedCmShowPopupWindowResult" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of attempting to show a pop-up window, triggered by the
user clicking on the "Continue" button on the IDP sign-in status
mismatch dialog. Recorded once per click of the "Continue" button.
</summary>
</histogram>
<histogram name="Blink.FedCm.IdpSignoutRequestInitiatedByUser"
enum="BooleanYesNo" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever we receive an IDP sign-in header (Google-Accounts-SignOut or
IdP-SignIn-Status: action=signout) in response to a non-worker HTTP request,
this records whether there was a transient user activation as indicated by
ResourceRequest::has_user_gesture.
</summary>
</histogram>
<histogram name="Blink.FedCm.IsSignInUser" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the user selected account is for sign-in or not. Records at
most one sample per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.JavaObjectCreationOutcome.Button"
enum="FedCmJavaObjectCreationOutcome" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Java object is tied to the bottomsheet availability so it may not be
creatable when we need it. Records one sample each time we request creating
the object in button mode. Recorded whenever native is talking with the
Android side which could be multiple times per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.JavaObjectCreationOutcome.Widget"
enum="FedCmJavaObjectCreationOutcome" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Java object is tied to the bottomsheet availability so it may not be
creatable when we need it. Records one sample each time we request creating
the object in widget mode. Recorded whenever native is talking with the
Android side which could be multiple times per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.LifecycleStateFailureReason"
enum="FedCmLifecycleStateFailureReason" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When we fail a FedCM request because the `Page` is not primary, this records
the lifecycle state the render frame host is in.
</summary>
</histogram>
<histogram name="Blink.FedCm.LoginHint.NumMatchingAccounts"
enum="FedCmNumAccounts" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of accounts the match a login hint. Records at the time
the accounts received by the FedCM API are filtered.
</summary>
</histogram>
<histogram name="Blink.FedCm.MismatchDialogShown" enum="BooleanHit"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records a 1 each time a mismatch dialog is shown.</summary>
</histogram>
<histogram name="Blink.FedCm.MismatchDialogType" enum="FedCmMismatchDialogType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of mismatch dialog shown: whether it is the first mismatch
shown for the current FedCM request or not, and whether there were hints
requested in the current FedCM request or not. Records every time a mismatch
dialog is shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.MultipleRequestsRpMode"
enum="FedCmMultipleRequestsRpMode" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the RP mode of two consecutive token requests. Recorded one sample
every time when a new request is invoked while there is another one pending.
</summary>
</histogram>
<histogram name="Blink.FedCm.NumRequestsPerDocument" units="count"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of navigator.credentials.get() requests made in a
document. Requests made when FedCM is disabled or when there is a pending
FedCM request are not counted. Records at most one sample for every document
where at least one navigator.credentials.get() request is made. No samples
are recorded if the count is 0. The bucketing method used is
base::UmaHistogramCounts100.
</summary>
</histogram>
<histogram name="Blink.FedCm.Popup.DialogType" enum="FedCmDialogType"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the dialog type whenever we open a popup/custom tab. Recorded once
per popup/custom tab opened. Values 0-4 of the enum will not be recorded for
this histogram.
</summary>
</histogram>
<histogram name="Blink.FedCm.PreventSilentAccessFrameType"
enum="FedCmRequesterFrameType" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of frame that invokes preventSilentAccess(). Records only
when there is an existing FedCM sharing permission on the main frame, and
some frame in the page invokes the preventSilentAccess() JavaScript call.
Possible values are: main frame, same-site iframe, and cross-site iframe,
where the site of the iframe is compared with the site of the main frame.
</summary>
</histogram>
<histogram name="Blink.FedCm.RpContext" enum="FedCmRpContext"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the RP Context used in a FedCM call. Records only when the RP
Context flag is enabled.
</summary>
</histogram>
<histogram name="Blink.FedCm.RpParametersAndScopeState"
enum="FedCmRpParameters" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether parameters or a non-default scope were specified in the
FedCM call by the RP for any IDP. Records once per FedCM call when the
request is initiated. Only recorded if parameters or non-default scopes were
specified and FedCmAuthz is enabled.
</summary>
</histogram>
<histogram name="Blink.FedCm.SetLoginStatusIgnored"
enum="FedCmSetLoginStatusIgnoredReason" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why we ignored an attempt to set a login status. Recorded
once per attempt to set a login status that was ignored.
</summary>
</histogram>
<histogram name="Blink.FedCm.SignInStatusSetToSignout.NetError"
enum="NetErrorCodes" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the NetError from the accounts list endpoint. This histogram is only
recorded when the IDP Sign-In Status of an IDP is marked as signout as a
result of the accounts list endpoint not returning any accounts.
</summary>
</histogram>
<histogram name="Blink.FedCm.SignUp.PrivacyPolicyClicked" enum="BooleanHit"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded each time that the privacy-policy link in the FedCM prompt is
clicked.
</summary>
</histogram>
<histogram name="Blink.FedCm.SignUp.TermsOfServiceClicked" enum="BooleanHit"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded each time that the terms-of-service link in the FedCM prompt is
clicked.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.AccountsResponseInvalidReason"
enum="FedCmAccountsResponseInvalidReason" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why there is no valid account in the response. Recorded
at most once per accounts fetch when the response is received.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.Csp" enum="FedCmCspStatus"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result of CSP checks in the FedCM API.</summary>
</histogram>
<histogram name="Blink.FedCm.Status.Disconnect" enum="FedCmDisconnectStatus"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the status of a disconnect call to the FedCM API. Recorded once per
IdentityCredential.disconnect() call, once the browser knows the result.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.IdpSigninMatch"
enum="FedCmIdpSigninMatchStatus" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the browser's knowledge of whether the user is signed-in to
the IDP based on observing signin/signout HTTP headers matches the
information returned by the accounts endpoint. Recorded at most once per
navigator.credentials.get() call after sending the request to the accounts
endpoint.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.MediationRequirement"
enum="CredentialManagerMediationRequirement" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mediation requirement of a request token call to the FedCM API.
Records a sample when the FedCM call is completed, i.e. at the same time as
Blink.FedCm.Status.RequestIdToken.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.RequestIdToken"
enum="FedCmRequestIdTokenStatus" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the status of a request token call to the FedCM API.
</summary>
</histogram>
<histogram name="Blink.FedCm.Status.SignInStateMatch"
enum="FedCmSignInStateMatchStatus" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether user sign-in states between IDP and browser match. Records a
sample after browser receives an account list from IDP prior to showing UI.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.AccountsDialogShownDuration2" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when an accounts dialog is shown to when dialog is
destroyed e.g. user selects an account, user closes the dialog, or the
developer aborts the request. This duration includes the time when the
accounts dialog is inactive e.g. user switches to a different tab. Samples
are at most 10 minutes. Records a sample when an accounts dialog which is
not the verifying UI for auto re-authentication is shown. In a previous
definition, Blink.FedCm.Timing.AccountsDialogShownDuration, a sample was
recorded when an accounts dialog (including the verifying UI) is shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.CancelOnDialog" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when the accounts dialog is shown to when the user
explicitly closes the dialog without selecting any account. Only records a
sample when the user sees and *explicitly* closes the dialog. For instance,
the accounts dialog being closed as a result of the user focusing a
different part of the browser UI does not count as explicitly closing the
dialog.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.ContinueOn.Response" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when an account is selected to when the continue_on
response is received. Only records a sample if and when
IdentityProvider.resolve is called from the continue_on popup. Recorded at
most once per FedCM call.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.ContinueOn.TurnaroundTime" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the overall time from when the API is called to when the token is
received through IdentityProvider.resolve. Only records a sample if and when
IdentityProvider.resolve is called from the continue_on popup. Recorded at
most once per FedCM call.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.ContinueOnDialog" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when the accounts dialog is shown to when the user
presses the Continue button. Only records a sample when the user sees and
taps the "Continue" button on the dialog.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.Disconnect" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when the disconnect() request is received by the
browser process to the time in which it is completed, e.g. right before
sending the response back to the renderer process. Records one sample for
every disconnect call which sends a disconnect request.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.GetUserInfoToButtonMode" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time in milliseconds from when the accounts are received via the
getUserInfo() API to the time when the Button Mode API is called. Recorded
when the Button mode is invoked and there was a successful accounts fetch
via the getUserInfo API call on this page. Recorded at most once per
getUserInfo API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.IdTokenResponse" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when the user presses the Continue button to when the
token response is received. Only records a sample when the token response is
received.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.MismatchDialogShownDuration" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when a mismatch dialog is shown to when user
triggers IDP sign-in pop-up window or when dialog is destroyed e.g. user
closes the dialog. This duration includes the time when the mismatch dialog
is inactive e.g. user switches to a different tab. Samples are at most 10
minutes. Records a sample when a mismatch dialog is shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.ShowAccountsDialog" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a call to the API was made to when the accounts
dialog is ready to be shown. Only records a sample when the dialog is shown.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.ShowAccountsDialogBreakdown.AccountsFetch"
units="ms" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when an accounts request is made to when the accounts
fetch response is received. Records one sample whenever it's ready to show
the accounts UI which could happen multiple times per API call.
</summary>
</histogram>
<histogram
name="Blink.FedCm.Timing.ShowAccountsDialogBreakdown.ClientMetadataFetch"
units="ms" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a client metadata request is made to when the
fetch response is received. Records one sample whenever it's ready to show
the accounts UI which could happen multiple times per API call. If the
client metadata request is skipped, e.g. for returning users, records a zero
instead.
</summary>
</histogram>
<histogram
name="Blink.FedCm.Timing.ShowAccountsDialogBreakdown.WellKnownAndConfigFetch"
units="ms" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a call to the API was made to when the well-known
and config files are fetched. Records one sample whenever it's ready to show
the accounts UI which could happen multiple times per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.TurnaroundTime" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the overall time from when the API is called to when the token
response is received. Only records a sample when the token response is
received.
</summary>
</histogram>
<histogram name="Blink.FedCm.Timing.WellKnownAndConfigFetch" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a call to the API was made to when the well-known
and config files fetch response are received. Records a sample when the
response is received. Recorded at most once per API call. The histogram
Blink.FedCm.Timing.ShowAccountsDialogBreakdown.WellKnownAndConfigFetch is
different because it only records the fetch time when the accounts dialog is
ready to show. i.e. there could be much fewer samples recorded in that
histogram because many well-known and config file fetches take too much time
such that the API call would fail without fetching the rest endpoints. i.e.
the distribution of the two histograms could be statically different.
</summary>
</histogram>
<histogram name="Blink.FedCm.UserInfo.NumAccounts" enum="FedCmNumAccounts"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of accounts returned by a getUserInfo() call. Records
once per request with a successful accounts fetch. Records when the request
is completed.
</summary>
</histogram>
<histogram name="Blink.FedCm.UserInfo.Status" enum="FedCmUserInfoStatus"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the status of a getUserInfo() call. Records once per request when
the request is completed, right before running the callback.
</summary>
</histogram>
<histogram name="Blink.FedCm.UserInfo.TimeToRequestCompleted" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a getUserInfo() call is received on the browser
process to the time it is completed. Records once per request with a
successful accounts fetch. Records when the request is completed.
</summary>
</histogram>
<histogram name="Blink.FedCm.WebContentsActive" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the WebContents is active when the browser is ready to show
the accounts dialog to the user. Records at most one sample per API call.
</summary>
</histogram>
<histogram name="Blink.FedCm.WebContentsVisible" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the WebContents is visible when the browser is ready to show
the accounts dialog to the user. Records at most one sample per API call.
</summary>
</histogram>
<histogram name="Blink.FencedFrame.BeaconReportingHttpResult"
enum="FencedFrameBeaconReportingResult" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a fenced frame sends a beacon over the network for event-level reporting,
this records the HTTP response status of the beacon request immediately
after the request completes. For each beacon type, there is a
"success" and "failure" enum indicating 200 vs. non-200
HTTP response code, and an "invalid" enum indicating that the
request is invalid or did not complete successfully. Fenced frames can send
beacons on navigation, user actions, or both, and can send them to multiple
locations, so numerous requests can occur over the life of the frame.
</summary>
</histogram>
<histogram name="Blink.FencedFrame.CreationOrNavigationOutcome"
enum="FencedFrameCreationOutcome" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records creation and navigation outcomes for a fenced frame. This is written
either when a fenced frame navigates successfully, or when some issue causes
either the creation or navigation of a fenced frame to stop.
</summary>
</histogram>
<histogram name="Blink.FencedFrame.FailedSandboxLoadInTopLevelFrame"
enum="BooleanYesNo" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a fenced frame failed to load due to incorrectly set sandbox flags,
records whether or not the fenced frame was attempting to be created in a
top-level frame. This is written whenever a fenced frame creation fails due
to sandbox flags not being permissive enough.
</summary>
</histogram>
<histogram name="Blink.FencedFrame.IsFrameResizedAfterSizeFrozen"
enum="BooleanYesNo" expires_after="2025-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if a fenced frame's size is set after the size had been frozen. The
size of a fenced frame is frozen once it navigates to a page, and results in
the inner contents being scaled to fit the new dimensions without telling it
the frame's new size. This is only logged up to one time throughout a fenced
frame's life, and will not be logged if the size is never set after being
frozen.
</summary>
</histogram>
<histogram name="Blink.FencedFrame.IsOpaqueFrameSizeCoerced"
enum="BooleanChanged" expires_after="2025-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an opaque-ads fenced frame's size was changed because the
provided size was not in the list of allowed sizes. This will not log
anything for a default mode fenced frame. This will log when an opaque-ads
fenced frame has its size frozen (which is triggered when it navigates to
its first page).
</summary>
</histogram>
<histogram name="Blink.FencedFrame.MandatoryUnsandboxedFlagsSandboxed"
enum="WebSandboxFlags" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a fenced frame failed to load due to incorrectly set sandbox flags,
records which sandbox flags that should be unsandboxed ended up being
sandboxed, causing the load to fail. This is written whenever a fenced frame
creation fails due to sandbox flags not being permissive enough. If multiple
sandbox flags are incorrectly set, it will log every sandbox flag that was
not set correctly for each failed load.
</summary>
</histogram>
<histogram name="Blink.Fetch.RequestResourceTime2{SchemeOrPreload}"
units="microseconds" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total microseconds spent in ResourceFetcher::requestResource for
{SchemeOrPreload}.
This histogram only records metrics on machines with high-resolution clocks.
Warning: this histogram was expired from 2023-05-02 to 2023-12-12; data may
be missing.
</summary>
<token key="SchemeOrPreload">
<variant name="" summary="all URLs"/>
<variant name=".Data" summary="data URLs"/>
<variant name=".Preload" summary="preloaded URLs"/>
<variant name=".TransparentPlaceholderImage"
summary="transparent placeholder images"/>
</token>
</histogram>
<histogram name="Blink.FetchQueuedPreloadsTime.{FrameType}.{IsInitial}"
units="ms" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to fetch queued subresource preloads for a
document in a {FrameType}. Logged every time preloads need to be fetched
after the {IsInitial} preload scan.
Warning: this histogram was expired from 2023-05-29 to 2023-12-04; data may
be missing.
</summary>
<token key="FrameType">
<variant name="MainFrame"/>
<variant name="Subframe"/>
</token>
<token key="IsInitial">
<variant name="Initial"/>
<variant name="NonInitial"/>
</token>
</histogram>
<histogram name="Blink.Fonts.BackgroundDecodeTime" units="microseconds"
expires_after="2024-08-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent for decoding the fonts on the background thread. Recorded when a
font resource creates its decoded data. This histogram is only logged in
platforms with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Fonts.DecodeTime" units="microseconds"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent for decoding the fonts. Recorded when a font resource creates its
decoded data. This histogram is only logged in platforms with
high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Fonts.EmojiClusterBrokenness" units="%"
expires_after="2024-04-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Percentage of emoji clusters of all emoji clusters going through shaping
calls that are shaped as either .notdef/tofu glyphs or are shapes as more
than one glyph, which usually indicates that an emoji sequence was not
shaped correctly due to the emoji font not supporting it. Recorded per
page/worker and on page unload if the page contained emoji.
</summary>
</histogram>
<histogram name="Blink.Fonts.FontServiceThread.MatchFamilyNameTime"
units="microseconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent identifying the best match for a font face to use given a family
name and style, including the mojo calls. This is recorded right after the
best match is found. This histogram is only logged in platforms with
high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Fonts.FontServiceThread.OpenStreamTime"
units="microseconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent opening a font file, including the mojo calls. This is recorded
right after the font file is opened. This histogram is only logged in
platforms with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Fonts.VariableFontsRatio"
enum="WebFontInstantiationResult" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks adoption ratio of variable fonts compared to conventional (in the
sense of non-variable) web fonts. Recorded at the time of instantiating a
Skia SkTypeface from the successfully decoded web font blob.
</summary>
</histogram>
<histogram base="true" name="Blink.ForcedStyleAndLayout.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing layouts due to Javascript value requests. Specifically,
time spent in Blink Document::UpdateStyleAndLayout.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.Frame.GetCanonicalUrlRendererTime" units="microseconds"
expires_after="2023-09-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android only: The time spent by the renderer main thread to collect and send
back to the browser process a web page's canonical link. This is recorded
every time the renderer fulfills a request for this information. This
histogram is only logged in platforms with high-resolution clocks.
</summary>
</histogram>
<histogram base="true" name="Blink.HandleInputEvents.UpdateTime"
units="microseconds" expires_after="2025-06-01">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent processing rAF-aligned input during a main frame update.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.History.VisitedLinks.InFencedFrameTree" enum="Boolean"
expires_after="2025-08-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Each time we determine an anchor element's VisitedLinkState, we record
whether the anchor element is in a Fenced Frame Tree. This helps us
understand how frequently we are not styling links as :visited due to them
being in a Fenced Frame or a child of a Fenced Frame.
</summary>
</histogram>
<histogram name="Blink.History.VisitedLinks.IsLinkStyledAsVisited"
enum="Boolean" expires_after="2025-06-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Each time we determine an anchor element's VisitedLinkState, we record
whether the link will be styled as visited. :visited is true and :unvisited
is false.
</summary>
</histogram>
<histogram name="Blink.History.VisitedLinks.IsSaltFromNavigationThrottle"
enum="Boolean" expires_after="2025-06-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Each time we add an origin, salt pair to VisitedLinkReader, this histogram
records whether the salt came from the VisitedLinkNavigationThrottle or the
VisitedLinkNotificationSink IPC. The VisitedLinkNavigationThrottle salts are
true and the VisitedLinkNotificationSink salts are false.
</summary>
</histogram>
<histogram base="true" name="Blink.HitTestDocumentUpdate.UpdateTime"
units="microseconds" expires_after="2025-06-01">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent preparing the document for hit testing during a main frame
update. It does not compute the actual hit test time, rather the style,
layout, compositing, etc time to prepare for the test.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.AbortedParseSize" units="bytes"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of bytes after which the html fast-path parser aborted. This does not
count the bytes the fast-path parser did not look at. We measure this since
aborting the fast-path and falling back to the normal parser is wasted
effort. This is recorded after every invocation of Element::setInnerHTML.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.AbortedParseTime2"
units="microseconds" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time the innerHTML fast-path parser took before reaching input
it could not handle. This is recorded when Element::setInnerHTML is called,
and at the moment when the input it can't handle is reached.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.ParseResult"
enum="InnerHTMLFastPathParserParseResult" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Captures the result of the innerHTML fast-path parser. This is recorded
every time Element::setInnerHTML is called and only if the innerHTML
fast-path parser is enabled.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.SuccessfulParseSize" units="bytes"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of bytes successfully parsed by the innerHTML fast-path parser. This
is recorded if the innerHTML fast-path parser completes successfully and is
logged at the end of parsing the content supplied to Element::setInnerHTML.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.SuccessfulParseTime2"
units="microseconds" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the innerHTML fast-path parser to complete processing
text from Element::setInnerHTML. This is recorded if fast-path innerHTML is
enabled, and completes successfully.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.TotalParseTime2" units="microseconds"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total time it takes to complete parsing of Element::setInnerHTML. This
includes the time taken by the fast-path parser (even if it failed). This is
recorded after every invocation of Element::setInnerHTML.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLFastPathParser.{Type}.CompositeMaskV2"
enum="InnerHTMLFastPathParserUnsupportedTagType" expires_after="2023-12-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is logged if the innerHTML fast-path parser fails because an {Type} tag
is encountered. This value is an aggregate (bitmask) that identifies which
{Type} groupings were encountered. Ideally a single bitmask would be logged,
but the dashboard doesn't deal well with large bitmasks. The individual
groupings are recorded via one of Blink.HTMLFastPathParser.*.Mask0-3 (* is
one of UnsupportedContextTag or UnsupportedTag).
</summary>
<token key="Type">
<variant name="UnsupportedContextTag" summary="unsupported context"/>
<variant name="UnsupportedTag" summary="unsupported"/>
</token>
</histogram>
<histogram name="Blink.HTMLFastPathParser.{Type}.Mask{MaskBit}V2" units="tags"
expires_after="2023-12-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
See description of Blink.HTMLFastPathParser.*.CompositeMask for an overview
of this including when it is logged. The value is a bitmask that identifies
which tags were encountered:
{MaskBit}
</summary>
<token key="Type">
<variant name="UnsupportedContextTag" summary="unsupported context"/>
<variant name="UnsupportedTag" summary="unsupported"/>
</token>
<token key="MaskBit">
<variant name="0"
summary="bit 0: img. bit 1: aside. bit 2: u. bit 3: hr. bit 4: h. bit
5: em. bit 6: The tag is not a known html tag. bit 7: The
tag is a known html tag, but is not categorized."/>
<variant name="1"
summary="bit 0: form. bit 1: Any one of article, header, footer, or
section. bit 2: nav. bit 3: iframe. bit 4: Any one of table,
tr, td, tbody, or th. bit 5: Any of of dl, dt, or dd. bit 6:
ins bit 7: blockquote."/>
<variant name="2"
summary="bit 0: center. bit 1: small. bit 2: font. bit 3: fieldset.
bit 4: textarea. bit 5: time. bit 6: svg. bit7: body."/>
</token>
</histogram>
<histogram name="Blink.HTMLParsing.ChunkCount4" units="chunks"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of chunks parsed while loading a page. Each chunk represents a
piece of the HTML content that can be loaded without blocking or yielding.
This is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.InputCharacterCount4" units="characters"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of characters processed while parsing a document during page
load. This is computed as the sum of all the characters appended to the
input string sequence for the parser. This is only reported for http/https
urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.ParsingTimeMax4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the maximum time used to parse a single chunk before
being blocked, yielding or completing, in microseconds. This does not
include time spent executing script. This is only reported for http/https
urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.ParsingTimeMin4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the minimum time used to parse a single chunk before
being blocked, yielding or completing, in microseconds. This does not
include time spent executing script. This is only reported for http/https
urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.ParsingTimeTotal4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the total amount of time spent in the
HTMLDocumentParser performing parsing, in microseconds. This does not
include time spent executing script. This is only reported for http/https
urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.PreloadRequestCount" units="count"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of queued preload requests created by the preload scanner
when HTMLDocumentParser performing parsing. This is only reported for
http/https urls. This is reported at the parse end.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.TimeToDeferredPumpTokenizer4"
units="microseconds" expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between when the first content has been received by the
HTMLDocumentParser and when parsing begins. This is effectively measuring
the time between when SchedulePumpTokenizer() is called, and when the task
runs that does the parsing. This is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.TokensParsedAverage4" units="tokens"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the average number of tokens parsed across all chunks.
This is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.TokensParsedMax4" units="tokens"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the maximum number of tokens parsed as a chunk. This
is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.TokensParsedMin4" units="tokens"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the minimum number of tokens parsed as a chunk. This
is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.TokensParsedTotal4" units="tokens"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the total number of tokens parsed across all chunks.
This is only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.YieldedTimeAverage4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the average time between parsing of two chunks, in
microseconds. Will not be recorded if only one chunk was parsed. This is
only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.YieldedTimeMax4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the maximum time between parsing of two chunks, in
microseconds. Will not be recorded if only one chunk was parsed. This is
only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.HTMLParsing.YieldedTimeMin4" units="microseconds"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
While parsing a page, the minimum time between parsing of two chunks, in
microseconds. Will not be recorded if only one chunk was parsed. This is
only reported for http/https urls.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.ImageDecoders.Avif.CleanAperture"
enum="AVIFCleanApertureType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/platform/image-decoders/avif/OWNERS
</owner>
<summary>
If an AVIF image has a clean aperture ('clap') property, record what kind of
clean aperture it is when one frame of the image is decoded fully. The
histogram is intended to check whether clean aperture properties with a
nonzero origin are common.
</summary>
</histogram>
<histogram name="Blink.ImageDecoders.ImageHasMultipleGeneratorClientIds"
enum="ImageHasMultipleGeneratorClientIds" expires_after="2023-09-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram records whether an image has been decoded by a single client
or by multiple clients during decoding. For an image to be decoded, it is
always requested by a client with a client_id. If an image has been
requested by multiple clients, it would be decoded more than once. The
histogram value is recorded at most two times per image (once per bucket).
There will be overlap for two buckets, but we can get the the number of an
image decodeded by only one client with the difference between two buckets.
This helps us to know how often images get duplicated decoding in real life.
</summary>
</histogram>
<histogram base="true" name="Blink.ImplCompositorCommit.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating layers in the compositor thread during a
ProxyMain::BeginMainFrame. It is the actual work time, excluding time spent
waiting for the compositor thread to begin.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.IntersectionObservation.UpdateTime"
units="microseconds" expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true"
name="Blink.IntersectionObservationInternalCount.UpdateTime" units="count"
expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of IntersectionObserver computations for blink-internal consumers
that were performed during the course of a single main frame.
</summary>
</histogram>
<histogram base="true"
name="Blink.IntersectionObservationJavascriptCount.UpdateTime"
units="count" expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of IntersectionObserver computations for javascript consumers that
were performed during the course of a single main frame.
</summary>
</histogram>
<histogram base="true" name="Blink.JavascriptDocumentUpdate.UpdateTime"
units="microseconds" expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent preparing the document to answer a Javascript API query or
request. Examples include scrool offset requests, queries of layout
dimensions, SVG path queries, etc. Includes time spent in style update and
layout, or via EnsurePaintLocationDataValidForNode. Some of these calls may
be servicing internal needs, but we have no way to disambiguate those from
JS driven activity.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.JavascriptIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is due to a Javascript request. Recorded
when an intersection observation is made for the Javascript reason.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.KeyboardLock.MethodCalled" enum="KeyboardLockMethods"
expires_after="2023-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records each call to the navigator.keyboard{Lock|Unlock} methods.
</summary>
</histogram>
<histogram
name="Blink.Layout.InlineNode.ShapeText.MaxTime.InOutermostMainFrame3"
units="microseconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the maximum elapsed time it takes to run InlineNode::ShapeText()
while loading the outermost main frame document until finishing parsing.
Logged on each loading of the outermost main frame document.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram
name="Blink.Layout.InlineNode.ShapeText.TotalTime.InOutermostMainFrame3"
units="microseconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the total elapsed time it takes to run InlineNode::ShapeText()
while loading the outermost main frame document until finishing parsing.
Logged on each loading of the outermost main frame document.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Layout.RebuildFragmentTreeSpine" units="microseconds"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent to rebuild container physical fragments, recorded on sub-tree
root layout.
</summary>
</histogram>
<histogram name="Blink.Layout.SVGImage.Count.InOutermostMainFrame"
units="count" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the call count of SVGImage::DataChanged() while loading the
outermost main frame document until finishing parsing. Logged on each
loading of the outermost main frame document. This doesn't include
asynchronous loading time.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Layout.SVGImage.TotalTime.InOutermostMainFrame"
units="microseconds" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the total elapsed time it takes to run SVGImage::DataChanged()
while loading the outermost main frame document until finishing parsing.
Logged on each loading of the outermost main frame document. This doesn't
include asynchronous loading time.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Layout.UpdateLayerPositionsAfterLayout"
units="microseconds" expires_after="2024-05-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent in PaintLayer::UpdateLayerPositionsAfterLayout.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
</summary>
</histogram>
<histogram base="true" name="Blink.Layout.UpdateTime" units="microseconds"
expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating layout in the Blink document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.LazyLoadIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is due to a Lazy Image Loading request.
Recorded when an intersection observation is made to determine when a lazy
loaded image should be loaded.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.LCPP.BoostImagePriorityReason"
enum="BoostImagePriorityReason" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the reason for the image boost when image fetch priority was
increased in ResourceFetcher. Currently there are two major ways to increase
the image fetch priority. This UMA helps us to understand which way is more
common.
</summary>
</histogram>
<histogram name="Blink.LCPP.CrossOriginLcpImage" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records if LCP image source is across a different origin from the root
origin.
The metric is emitted as LCP Critical Path Predictor finalizes LCP candidate
dependencies, and emitted only for the outermost frame. If the LCP is not an
image (or an image with a non-HTTP family URL), nothing should be recorded
in the histogram. A false is recorded when it is a valid HTTP(s) image that
is same origin.
</summary>
</histogram>
<histogram name="Blink.LCPP.DeferUnusedPreload.DeferredResourceCount"
units="count" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the total count of preloads, which are deferred to load based on the
potentially unused preload signals from the LCP Critical Path Predictor
(LCPP) database.
This metric is recorded at the same time when
"Renderer.Preload.UnusedResourceCount" is recorded. That is
scheduled to a few seconds later after the preload request is created.
</summary>
</histogram>
<histogram name="Blink.LCPP.DeferUnusedPreload.DeferredResource{Trigger}"
enum="ResourceType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of deferred preloads per ResourceType. {Trigger} are
recorded.
This is recorded when deferred preloads starts loading.
</summary>
<token key="Trigger" variants="PreloadTrigger"/>
</histogram>
<histogram name="Blink.LCPP.DeferUnusedPreload.PredictionFailed{Trigger}"
enum="ResourceType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of deferred preloads per ResourceType. {Trigger} are
recorded only when those were predicted as not used in the page, but
actually used.
This is recorded when deferred preloads starts loading.
</summary>
<token key="Trigger" variants="PreloadTrigger"/>
</histogram>
<histogram
name="Blink.LCPP.DeferUnusedPreload.UnusedAtDeferredLoadTiming{Trigger}"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Indicates the prediction result. If true, the deferred preload is still not
used at least at the timing when the scheduled loading task is executed (the
actual timing is defined based on the kLCPPDeferUnusedPreloadTiming feature
param), which means the prediction succeeded. If false, that means the
prediction failed.
This is recorded when deferred preloads starts loading. {Trigger} are the
target.
</summary>
<token key="Trigger" variants="PreloadTrigger"/>
</histogram>
<histogram name="Blink.LCPP.FontFetch.{Condition}.ConnectionType"
enum="NetworkConnectionType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Record a connection type when there is fonts to be prefetched or preloaded
according to the LCPP prediction.
There is a configuration on the bandwidth limit. If the bandwidth is below
the limit, an empty fonts list is returned. It is used for disabling the
prefetch/preload.
</summary>
<token key="Condition">
<variant name="Disabled"
summary="disabled due to hitting the bandwidth limit"/>
<variant name="Enabled"
summary="enabled because above the bandwidth limit"/>
</token>
</histogram>
<histogram name="Blink.LCPP.LCPElementLocatorSize" units="bytes"
expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the size of the identified LCP element locator in bytes.
The metric is emitted before the element locator is serialized to the LCP
Critical Path Predictor (LCPP) database, so it can inform us if the current
ElementLocator encoding scheme is reasonable in terms of its output size.
</summary>
</histogram>
<histogram name="Blink.LCPP.LCPInfluencerUrlsCount" units="count"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the number of resources identified to be influencing the load of
the LCP element.
The metric is emitted before the influencer list is serialized to the LCP
Critical Path Predictor (LCPP) database.
</summary>
</histogram>
<histogram name="Blink.LCPP.LCPInfluencerUrlsMaxLength" units="bytes"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the size of the longest URL influencing the load of the LCP
element.
The metric is emitted before the influencer list is serialized to the LCP
Critical Path Predictor (LCPP) database.
</summary>
</histogram>
<histogram name="Blink.LCPP.LCPInfluencerUrlsPredictionMatchCount"
units="count" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of URLs matched during a subsequent page load, from the
set of URLs identified to be influencing the load of the LCP element.
The metric is emitted as LCP Critical Path Predictor calculates dependencies
of the current LCP candidate.
</summary>
</histogram>
<histogram name="Blink.LCPP.LCPInfluencerUrlsPredictionMatchPercent" units="%"
expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the percent of matched LCP influencer URLs against the predicted
set of URLs.
The metric is emitted as LCP Critical Path Predictor calculates dependencies
of the current LCP candidate.
</summary>
</histogram>
<histogram
name="Blink.LCPP.NavigationToStartPreload.MainFrame.{SubresourceType}.Time"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record when the page's main frame starts preloading {SubresourceType}.
Measures the duration between when the navigation starts, to when preloading
subresource is started.
</summary>
<token key="SubresourceType">
<variant name="EachSubresource" summary="each subresources"/>
<variant name="FirstSubresource" summary="the first subresource"/>
</token>
</histogram>
<histogram name="Blink.LCPP.PotentiallyLCPResourcePriorityBoosts2"
units="count" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the number of resources that got priority boost from LCPP signals
for page loads with non-empty LCPP hint data.
This metric is emitted for every page load when it is about to emit
"onload" event. The metric would tell us how much LCP Critical
Path Predictor (LCPP), is affecting page load in the wild.
This metric is not emitted 1) when there are no LCPP signals, 2) when the
document is not in an OutermostMainFrame, or 3) when the document URL is not
a HTTP family.
</summary>
</histogram>
<histogram name="Blink.LCPP.PreconnectPredictionCount" units="count"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of origins preconnected using the LCPP prediction.
This metric is emitted when predicted origins are appended to the
PreconnectPrediction structure during PrepareForPageLoad.
</summary>
</histogram>
<histogram name="Blink.LCPP.PreconnectPredictionMatchCount" units="count"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of predicted preconnect origins that matched against the
LCP image.
The metric is emitted as LCP Critical Path Predictor finalizes LCP candidate
dependencies. This metric should indicate "1" in the ideal case,
i.e., exactly one prediction matched the actual LCP origin. Higher than one
would indicate duplicate predictions and should not be normal.
</summary>
</histogram>
<histogram name="Blink.LCPP.PreconnectPredictionMatchPercent" units="%"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the percent of LCP origins matched against the LCPP predicted
preconnect origins.
The metric is emitted as LCP Critical Path Predictor finalizes LCP candidate
dependencies.
</summary>
</histogram>
<histogram name="Blink.LCPP.PrefetchFontCount" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of font URLs to be prefetched using the LCPP prediction.
This metric is emitted when predicted font URLs are appended to the
PreconnectPrediction structure for prefetching.
</summary>
</histogram>
<histogram name="Blink.LCPP.PreloadedFontCount" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of fetched font URLs to be preloaded in the renderer using
the LCPP prediction.
This metric is emitted just after the fonts are preloaded.
</summary>
</histogram>
<histogram name="Blink.LCPP.PrewarmHttpDiskCache.{PrewarmMethod}.CacheExists"
enum="BooleanExists" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records whether prewarming HttpDiskCache successfully warmed up the disk or
not. If the cache entry does not exist, false will be recorded. This is
recorded on each HttpDiskCache prewarming attempt and only if the
{PrewarmMethod} prewarming method was used.
</summary>
<token key="PrewarmMethod">
<variant name="DownloadBody"/>
<variant name="HeadersOnly"/>
</token>
</histogram>
<histogram name="Blink.LCPP.PrewarmHttpDiskCacheURL.Count" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the predicted subresource URL count that is predicted by the
HttpDiskCachePrewarming feature. This is recorded on each navigation.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontCount" units="count"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the number of web fonts that was fetched in the page and recorded
to the LCPP database.
This metric is emitted for every page load when it is about to emit
"onload" event. Unlike Blink.LCPP.ReportedFontCount, this metric
counts the number of fonts after filitering with the max fonts per site.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlHitCountForPagesWithFonts"
units="count" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Count the number of font URLs that hits the prediction using LCPP.
This metric is emitted for every page load when it is about to emit
"onload" event. Unlike Blink.LCPP.ReportedFontCount, this metric
counts the number of fonts after filitering with the max fonts per site. If
the page does not have web fonts, they are excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlMatchCount" units="count"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Counts the number of fetched font URLs that are already recorded in the LCPP
database.
This metric is emitted for every page load when it is about to emit
"onload" event.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlMatchCountForPagesWithFonts"
units="count" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Count the number of font URLs that has already recorded in the LCPP
database.
This metric is emitted for every page load when it is about to emit
"onload" event. Unlike Blink.LCPP.ReportedFontCount, this metric
counts the number of fonts after filitering with the max fonts per site. If
the page does not have web fonts, they are excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlPredictionHitPercent" units="%"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Ratio of the font URLs that hits the prediction using LCPP out of all
fetched fonts.
This metric is emitted for every page load when it is about to emit
"onload" event. If the page does not have web fonts, they are
excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlPredictionHitPercentInRecordedFonts"
units="%" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Ratio of the font URLs that hits the prediction using LCPP out of fetched
fonts to be recorded.
This metric is emitted for every page load when it is about to emit
"onload" event. Unlike Blink.LCPP.ReportedFontCount, this metric
counts the number of fonts after filitering with the max fonts per site. If
the page does not have web fonts, they are excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlPredictionMatchPercent" units="%"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the percent of font URLs in the LCPP database against all fetched
font URLs.
This metric is emitted for every page load when it is about to emit
"onload" event.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlReenterCountForPagesWithFonts"
units="count" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
The number of the font URLs that reentered to LCPP out of fetched fonts to
be recorded.
This metric is emitted for every page load when it is about to emit
"onload" event. If the page does not have web fonts, they are
excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlReenterPercentInRecordedFonts"
units="%" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Ratio of the font URLs that reentered to LCPP out of fetched fonts to be
recorded.
This metric is emitted for every page load when it is about to emit
"onload" event. Unlike Blink.LCPP.ReportedFontCount, this metric
counts the number of fonts after filitering with the max fonts per site. If
the page does not have web fonts, they are excluded from this metrics.
</summary>
</histogram>
<histogram name="Blink.LCPP.RecordedFontUrlsMaxLength" units="bytes"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the longest font URL that was fetched in the page and recorded to
the LCPP database.
This metric is emitted for every page load when it is about to emit
"onload" event.
</summary>
</histogram>
<histogram name="Blink.LCPP.ReportedFontCount" units="count"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the number of web fonts that was fetched in the page.
This metric is emitted for every page load when it is about to emit
"onload" event.
</summary>
</histogram>
<histogram base="true" name="Blink.MainFrame.UpdateTime" units="microseconds"
expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time between a BeginMainFrame and paint results commit in Blink.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.MediaIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is for a media element. Recorded when an
intersection observation is made attributed to a media element (such as
video auto-play).
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.MemoryCache.CrossDocumentCachedResource2"
enum="ResourceType" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Type of cached non-static resources reused across Documents when loading a
new document in the same renderer. Recorded by the ResourceFetcher when a
resource is requested for a new document and is not static. If the resource
is available from the memory cache and previously loaded by a different
document, the resource will be considered as reused. Repetitive requests to
the same url in a document will be counted only once.
Warning: an unexpected reorder happened in Apr 2021
(https://crrev.com/c/2798954). Please do not trust older reports.
</summary>
</histogram>
<histogram name="Blink.MemoryCache.PageSavedResourceStrongReferenceSize"
units="count" expires_after="2023-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Size of the resource strong references saved to the memory cache. Recorded
when the user navigates to a newpage under the same origin. Recorded only
with feature flag MemoryCacheStrongReference.
</summary>
</histogram>
<histogram name="Blink.MemoryCache.RevalidationPolicy.AsyncScript"
enum="RevalidationPolicy" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
RevalidationPolicy used for non-preloading requests of async and defer
scripts. https://crbug.com/1043679 https://crbug.com/1376866 Warning: this
histogram was expired from 2021/10/25 to 2022/12/09; data may be missing.
</summary>
</histogram>
<histogram name="Blink.MemoryCache.RevalidationPolicy.Dead.{ResourceType}"
enum="RevalidationPolicy" expires_after="2023-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
RevalidationPolicy used for requests that hit Resource only referenced from
MemoryCache for each resource type ({ResourceType}).
https://crbug.com/579496 Requests counted by this are also counted by
Blink.MemoryCache.RevalidationPolicy or
Blink.MemoryCache.RevalidationPolicy.Preload. https://crbug.com/1376866
Warning: this histogram was expired from 2021-04-21 to 2022-12-09; data may
be missing. This histogram's {ResourceType} was broken until 2023-03-09;
data before the date may not be stored.
</summary>
<token key="ResourceType" variants="ResourceType"/>
</histogram>
<histogram name="Blink.MemoryCache.RevalidationPolicy.Preload.{ResourceType}"
enum="RevalidationPolicy" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
RevalidationPolicy used for preloading requests for each resource type
({ResourceType}). https://crbug.com/579496 https://crbug.com/1376866
Warning: this histogram was expired from 2021-04-21 to 2022-12-09; and
2023-10-01 to 2024-01-17; data may be missing. This histogram's
{ResourceType} was broken until 2023-03-09; data before the date may not be
stored.
</summary>
<token key="ResourceType" variants="ResourceType"/>
</histogram>
<histogram name="Blink.MemoryCache.RevalidationPolicy.{ResourceType}"
enum="RevalidationPolicy" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
RevalidationPolicy used for non-preloading requests for each resource type.
https://crbug.com/579496 https://crbug.com/1376866
Warning: this histogram was expired from 2021-04-21 to 2022-12-09; and
2023-10-01 to 2024-01-17; data may be missing. This histogram's
{ResourceType} was broken until 2023-03-09; data before the date may not be
stored.
</summary>
<token key="ResourceType" variants="ResourceType"/>
</histogram>
<histogram name="Blink.MobileMetrics.BadTapTargetRatioExtractionSucceed"
enum="Boolean" expires_after="2023-05-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether element extraction phase succeed without consuming entire 4ms time
budget in MobileFriendlinessChecker::ComputeBadTapTargetsRatio() evaluation.
This metric recorded at 5 seconds after first MainFrame's commit and
periodically every 1 minutes after that.
</summary>
</histogram>
<histogram name="Blink.MobileMetrics.BadTapTargetRatioTime"
units="microseconds" expires_after="2022-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time taken in MobileFriendliness::ComputebadTapTargetsRatio evalution.
This metric recorded at 5 seconds after first MainFrame's commit and
periodically every 1 minutes after that.
The histogram does not record metric on machines with low-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.Network.DataURLLength{Type}" units="characters"
expires_after="2024-09-27">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total length of {Type} data URLs. This is recorded per resource request
when the parsing is completed.
</summary>
<token key="Type">
<variant name="" summary=""/>
<variant name=".Image" summary="image"/>
</token>
</histogram>
<histogram name="Blink.Network.ParseDataURLTime{Type}{CharacterCount}"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total microseconds spent in network_utils::ParseDataURL and is recorded
per resource request for {CharacterCount} of {Type} when the parsing is
completed.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
<token key="Type">
<variant name="" summary="all types"/>
<variant name=".Image" summary="image type"/>
</token>
<token key="CharacterCount">
<variant name="" summary="all data URLs"/>
<variant name=".Over100000Char"
summary="data URLs of over 100000 characters"/>
<variant name=".Under1000Char" summary="data URLs of 0 to 1000 characters"/>
<variant name=".Under100000Char"
summary="data URLs of 1000 to 100000 characters"/>
</token>
</histogram>
<histogram name="Blink.NotificationManager.GetPermissionStatusTime" units="ms"
expires_after="2024-01-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time taken to query the notification permission status. This is recorded
each time a sync call is made.
</summary>
</histogram>
<histogram name="Blink.OffscreenCanvas.NewOffscreenCanvas" enum="Boolean"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the creation of a new offscreen canvas in OffscreenCanvas::Create.
</summary>
</histogram>
<histogram name="Blink.OffscreenCanvas.SqrtNumberOfPixels" units="sqrt(pixels)"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Stores the square root of the number of pixels in a new or resized offscreen
canvas. Emitted from CanvasRenderingContextHost::RecordCanvasSizeToUMA.
</summary>
</histogram>
<histogram name="Blink.OffscreenCanvas.TransferControlToOffscreen"
enum="BooleanSuccess" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records a call to transfer a canvas offscreen.</summary>
</histogram>
<histogram name="Blink.OffscreenCanvas.Transferred" enum="Boolean"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when an offscreen canvas has been transferred from the main thread
to a worker.
</summary>
</histogram>
<histogram name="Blink.Overflow.ReplacedElementAreaOutsideContentRect"
units="pixels" expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Computes the area of img, video or canvas elements which is painted outside
the content rect if 'overflow' property is respected on these elements.
</summary>
</histogram>
<histogram base="true" name="Blink.Paint.UpdateTime" units="microseconds"
expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating paint in the Blink document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.ParseStyleSheet.UpdateTime"
units="microseconds" expires_after="2025-01-05">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent parsing style sheets for a document. Only recorded when the
CSSParserContext has a document available.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.PermissionElement.InvalidStyleReason"
enum="PermissionElementInvalidStyleReason" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the reason why the permission element's style is invalid. This
metric is emitted when the element's style is caculated/recaculated.
</summary>
</histogram>
<histogram name="Blink.PermissionElement.UserInteractionDeniedReason"
enum="PermissionElementUserInteractionDeniedReason"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Records the cause of a user interaction (e.g., user click on the permission
element) that has been denied. This metric is emitted once for every user
interaction that has been denied.
</summary>
</histogram>
<histogram base="true"
name="Blink.PermissionElementIntersectionObserver.UpdateTime"
units="microseconds" expires_after="2025-02-16">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
lifecycle where the observation is for gathering information about
permission elements within the viewport. Recorded when an intersection
observation attributed to permission element is updated.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.PossibleSynchronizedScrollCount2.UpdateTime"
units="count" expires_after="2024-06-01">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether a possible sync-scroll update is attempted during an
animation update of the outermost main frame of a page (see
sync_scroll_attempt_heuristic.h for details).
We will only record a 1 when the heuristic detects a possible sync scroll
(and we will also subsample further). This means PreFCP and PostFCP will
only report ones, and only when subsampled.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
</summary>
</histogram>
<histogram name="Blink.PreloadRequestStartDuration" units="microseconds"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from the time when PreloadRequest::Start is called to when
PreloadRequest::Start is finished.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Blink.PreloadRequestWaitTime" units="ms"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from the creation of a PreloadRequest to when
PreloadRequest::Start is called. Logged for each PreloadRequest::Start call.
Warning: this histogram was expired from 2023-10-22 to 2023-12-12; data may
be missing.
</summary>
</histogram>
<histogram base="true" name="Blink.PrePaint.UpdateTime" units="microseconds"
expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating paint properties and paint invalidation in the Blink
document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.PrepareToStopParsingTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to tokenize the HTML document, if necessary, and
perform other tasks around parsing completion. Logged every time there is an
update to the HTML document.
</summary>
</histogram>
<histogram name="Blink.PumpTokenizerTime" units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to tokenize an HTML document in Blink. Collected
once per update to HTML document.
</summary>
</histogram>
<histogram name="Blink.ResourceRequest.BackgroundResourceFetchSupportStatus"
enum="BackgroundResourceFetchSupportStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether BackgroundURLLoader can handle the resource request, and the
reason why it can't handle the request. Logged for every resource request
from the page which is not controlled by a service worker.
</summary>
</histogram>
<histogram name="Blink.ResourceRequest.CompletionDelay2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when a resource request completes to when the
renderer is notified. Logged for every resource request if the request has
never been frozen.
</summary>
</histogram>
<histogram name="Blink.ResourceRequest.RedirectDelay2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when a redirect from a resource request happens to
when the renderer is notified. Logged for every resource request if the
request has never been frozen.
</summary>
</histogram>
<histogram name="Blink.ResourceRequest.ResponseDelay2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when a response from a resource request is started to
when the renderer is notified. Logged for every resource request if the
request has never been frozen.
</summary>
</histogram>
<histogram name="Blink.ResourceRequest.StartDelay2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when the renderer starts a resource request to when
it is actually started on the network. Logged for every resource request if
the request has never been frozen.
</summary>
</histogram>
<histogram
name="Blink.Responsiveness.UserInteraction.MaxEventDuration.{InteractionType}"
units="ms" expires_after="never">
<!-- expires-never: Supports guardrail metric debugging -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of a single user interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
This metric is emitted once for every interaction in the web contents
{InteractionType}
</summary>
<token key="InteractionType">
<variant name="AllTypes"
summary="of all interaction types (keyboard, click, tap, drag). The
maximum event duration for the keydown, keypress, keyup,
pointerdown, pointerup, mousedown, mouseup, and click event
is reported."/>
<variant name="Drag"
summary="of type drag. The maximum event duration for the
pointerdown, pointerup, mousedown, mouseup, and click event
is reported."/>
<variant name="Keyboard"
summary="of type keyboard. The maximum event duration for the
keydown, keypress, and keyup event is reported."/>
<variant name="TapOrClick"
summary="of type click or tap. The maximum event duration for the
pointerdown, pointerup, mousedown, mouseup, and click event
is reported."/>
</token>
</histogram>
<histogram name="Blink.ScanAndPreloadTime.{FrameType}.{IsInitial}" units="ms"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Blink.ScanAndPreloadTime2 is the newer one of this histogram, which records
the time with microseconds.
Measures the time it takes to scan and preload subresources for a document
in a {FrameType}. Logged every time the {IsInitial} preload scan is
performed.
Warning: this histogram was expired from 2023-05-29 to 2023-12-04; data may
be missing.
</summary>
<token key="FrameType">
<variant name="MainFrame"/>
<variant name="Subframe"/>
</token>
<token key="IsInitial">
<variant name="Initial"/>
<variant name="NonInitial"/>
</token>
</histogram>
<histogram name="Blink.ScanAndPreloadTime2{Task}.{FrameType}.{IsInitial}"
units="microseconds" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to {Task} for a document in a {FrameType}. Logged
every time the {IsInitial} preload scan is performed.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
<token key="Task">
<variant name="" summary="scan and preload subresources"/>
<variant name=".Preload" summary="preload subresources"/>
<variant name=".Scan" summary="scan"/>
</token>
<token key="FrameType">
<variant name="MainFrame"/>
<variant name="Subframe"/>
</token>
<token key="IsInitial">
<variant name="Initial"/>
<variant name="NonInitial"/>
</token>
</histogram>
<histogram name="Blink.ScanPendingActivityDuration" units="ms"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Duration of time taken to scan pending activities of all V8 wrappers in a
worker thread.
</summary>
</histogram>
<histogram name="Blink.Script.AsyncScript.FromReadyToStartExecution.Time"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record when async scripts or dynamically inserted scripts run. Measures the
duration between when a script is ready to run, to when the script is about
to run.
</summary>
</histogram>
<histogram name="Blink.Script.AsyncScriptCount" units="count"
expires_after="2022-04-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total number of async scripts associated with a document at the time
parsing has finished.
</summary>
</histogram>
<histogram
name="Blink.Script.PostTaskWithLowPriorityUntilTimeout.RaceTaskPriority"
enum="RaceTaskPriority" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record which task priority's task was run in
`PostTaskWithLowPriorityUntilTimeout()` that uses LowerPriority task queue
and NormalPriority task queue. This is recorded when the
LowPriorityAsyncScriptExecution behavior is applied to async scripts.
</summary>
</histogram>
<histogram name="Blink.Script.PostTaskWithLowPriorityUntilTimeout.Time"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record when the LowPriorityAsyncScriptExecution behavior is applied to async
scripts. Measures the duration between when a script is ready to run, to
when the script is about to run.
</summary>
</histogram>
<histogram
name="Blink.Script.PostTaskWithLowPriorityUntilTimeout.Time.{RaceTaskPriority}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record when the LowPriorityAsyncScriptExecution behavior is applied to async
scripts, and {RaceTaskPriority} task was eventually run. Measures the
duration between when a script is ready to run, to when the script is about
to run.
</summary>
<token key="RaceTaskPriority">
<variant name="LowerPriority"/>
<variant name="NormalPriority"/>
</token>
</histogram>
<histogram name="Blink.Script.SchedulingType" enum="ScriptSchedulingType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of script elements for each scheduling type, recorded when each
script loading reaches the #prepare-a-script state defined in the spec, with
http or https request.
Warning: this histogram was expired from 2018-12-31 to 2022-05-25; data may
be missing.
</summary>
</histogram>
<histogram name="Blink.Script.SourceTextTime" units="microseconds"
expires_after="2023-08-27">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time spent generating the source text for a script resource. Logged when
the source text is accessed for the first time. Emitted at most once per
script resource.
Note that clients without high-resolution clocks will report 0 for very
short times.
</summary>
</histogram>
<histogram base="true" name="Blink.ServiceDocumentUpdate.UpdateTime"
units="microseconds" expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent preparing the document to service browser driven behaviors.
Examples include accessibility, intersection observer, display locking and
spell checking. Includes time spent in style update and layout.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.Sms.BackendAvailability"
enum="WebOTPBackendAvailability" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how often the verification backend is unavailable for the WebOTP API
and the corresponding reason. This is recorded once per OTP request.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.CrossDeviceFailure"
enum="WebOTPCrossDeviceFailure" expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why using the WebOTP API on desktop failed on the sharing
path. It records one sample per invocation of the API.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.Infobar" enum="WebOTPServiceInfobarAction"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many times the infobar was called and how many times the infobar
replaced a keyboard.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.Outcome" enum="WebOTPServiceOutcome"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the result of a call to the WebOTP API.</summary>
</histogram>
<histogram name="Blink.Sms.Receive.SmsParsingStatus" enum="SmsParsingStatus"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the status of parsing an incoming SMS when using the WebOTP API. It
records one sample per incoming SMS.
Note: This metric does not cover cross-devices WebOTP.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeCancel" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when the API is called to when the request is
cancelled by the service due to duplicated requests or lack of delegate.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeCancelOnKeyboardDismissal" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when the keyboard was replaced with an infobar
until when the user clicked the cancel button.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeCancelOnSuccess" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a successful SMS was retrieved to when the user
presses the Cancel button.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeContinueOnSuccess" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from when a successful SMS was retrieved to when the user
presses the Continue button.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeSmsReceive" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when the API is called to when an SMS has been
successfully received.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeSuccess" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when the API is called to when the user
successfully receives the SMS and presses continue to pass the incoming SMS
to the site and proceed with the SMS verification flow.
</summary>
</histogram>
<histogram name="Blink.Sms.Receive.TimeUserCancel" units="ms"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration from when the API is called to when the user
successfully receives the SMS and presses "Deny" to terminate the
SMS verification flow.
</summary>
</histogram>
<histogram name="Blink.Sms.WebContentsVisibleOnReceive" enum="Boolean"
expires_after="2025-02-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the web contents that receives the OTP is visible or not for
the UserConsent backend. Recorded at most once per API call when Chrome sees
the OTP from the expected origin.
</summary>
</histogram>
<histogram name="Blink.SpeculationRules.FetchTime" units="ms"
expires_after="2025-02-20">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/speculation_rules/OWNERS</owner>
<summary>
The amount of time between when a fetch of speculation rules is started and
when it is finished. Recorded each time such a fetch occurs.
</summary>
</histogram>
<histogram name="Blink.SpeculationRules.LoadOutcome"
enum="SpeculationRulesLoadOutcome" expires_after="2025-02-20">
<owner>[email protected]</owner>
<owner>src/third_party/blink/renderer/core/speculation_rules/OWNERS</owner>
<summary>
Outcome of an attempt to load a speculation rule set. Recorded once per
attempt, whether triggered by a response header, by the parser or by script.
</summary>
</histogram>
<histogram base="true" name="Blink.Style.UpdateTime" units="microseconds"
expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating style in the Blink document lifecycle.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.SVGImage.DataChanged" units="microseconds"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent updating a SVG image once all data is received.
This histogram does not record metrics on machines with low-resolution
clocks.
Warning: this histogram was expired from 2024-02-25 to 2024-04-17; data may
be missing.
</summary>
</histogram>
<histogram name="Blink.SVGImage.IsolatedSVGDocumentHostCreationTime"
units="microseconds" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time to run IsolatedSVGDocumentHostInitializer::Create() that
creates IsolatedSVGDocumentHost, AgentGroupScheduler, and
SVGImageChromeClient. Recorded each time
IsolatedSVGDocumentHostInitializer::Create() runs.
This histogram does not record metrics on machines with low-resolution
clocks.
</summary>
</histogram>
<histogram name="Blink.UpdateViewportIntersection.UpdateTime"
units="microseconds" expires_after="2025-02-09">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent computing geometry information about iframes from the perspective
of their embedding document. This time is also included in the
Blink.IntersectionObservation.UpdateTime metric.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.UseCounter.AnimatedCSSProperties"
enum="MappedCSSProperties" expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->
<!-- https://www.chromestatus.com/metrics/css/animated -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records usage of animated CSS properties used on a page, either statically
or dynamically, from the time the page is initialised to when it is closed
or navigated away from. Each property is counted at most once per page per
view via PageLoadMetricsObserver.
This histogram counts CSS properties only when they are animated by a CSS
Animation. Refer to Blink.UseCounter.CSSProperties for more details.
As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
side to the browser side.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.CSSProperties" enum="MappedCSSProperties"
expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->
<!-- https://www.chromestatus.com/metrics/css/animated -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records usage of CSS properties used on a page, either statically or
dynamically, from the time the page is initialised to when it is closed or
navigated away from. Each property is counted at most once per page per view
via PageLoadMetricsObserver.
The first time a CSS property is parsed on a page, the histogram is updated
to increment the counter. Each histogram bucket corresponds to a CSS
property (eg. width, border-radius). The exception is the 'Total pages
measured' bucket - this counts the number of pages that CSS properties were
counted on. When a page navigation occurs the page count bucket is
incremented and tracking of the set of which properties have been seen is
reset.
These numbers give the percentage of pages that use a CSS property. For
example, if the 'border-radius' histogram bucket has a count of 250, and the
page count bucket (i.e. bucket number 1) has a count of 1000 - this means
that 1000 pages were recorded, and border-radius was used on 25% of those
pages.
Note that CSS properties used inside of SVG images are tracked separately in
the Blink.UseCounter.SVGImage.CSSProperties histogram.
As of M57 this histogram supercedes WebCore.FeatureObserver.CSSProperties.
As of M69, Blink.UseCounter.AnimatedCSSProperties is moved from the blink
side to the browser side.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.DocumentPolicy.Enforced"
enum="DocumentPolicyFeature" expires_after="2023-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts enforced DocumentPolicyViolationReport generated in a document.
</summary>
</histogram>
<histogram name="Blink.UseCounter.DocumentPolicy.Header"
enum="DocumentPolicyFeature" expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the use of a specific document policy via the
"Document-Policy" HTTP response header.
</summary>
</histogram>
<histogram name="Blink.UseCounter.DocumentPolicy.PolicyAttribute"
enum="DocumentPolicyFeature" expires_after="2023-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the use of a specific document policy via the "policy"
attribute. Each policy is counted only once per page load.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.DocumentPolicy.ReportOnly"
enum="DocumentPolicyFeature" expires_after="2023-03-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts report only DocumentPolicyViolationReport generated in a document.
</summary>
</histogram>
<histogram name="Blink.UseCounter.Extensions.Features" enum="FeatureObserver"
expires_after="never">
<!-- expires-never: While this histogram is not used by the Chrome Platform
Status dashboard, being able to measure usage of feature in
chrome-extension:// URLs can still be vitally important when making
decisions around web platform features, per the documentation at
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/use_counter_wiki.md#uma-timeline-with-formula. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many page loads use various features for pages with a
chrome-extension:// URL only. The PageVisits bucket is incremented for each
page load, and the other buckets incremented at most once per PageVisit via
the WebCore::UserCounter class.
Warning: This histogram represents pre-renderer metrics and so is flawed
under OOPIF.
Warning: this histogram was expired from 2021-10-10 to 2022-07-12; data may
be missing.
</summary>
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.Header"
enum="FeaturePolicyFeature" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the use of a specific feature policy via the
"Feature-Policy" HTTP response header.
</summary>
</histogram>
<histogram name="Blink.UseCounter.Features" enum="FeatureObserver"
expires_after="never">
<!-- expires-never: used by Chrome Platform Status dashboard -->
<!-- https://chromestatus.com/metrics/feature/popularity -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many page loads use various features across all frames in a
page. The PageVisits bucket is incremented for each page load, and the other
buckets incremented at most once per PageVisit via blink::UseCounter and
UseCounterPageLoadMetricsObserver.
Note that this histogram only counts page with HTTP/HTTPS URL scheme.
Feature used in pages with other URL schemes might be counted in other
histograms: "extension://" : Blink.UseCounter.Extensions.Features
"file://" : Blink.UseCounter.File.Features
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.File.Features" enum="FeatureObserver"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many `file:` URL page loads use various features across all
frames in the page. This histogram has the same semantics as
"Blink.UseCounter.Features", but applies only to `file:` URLs
(which that histogram does not include).
Refer to "Blink.UseCounter.Features" for more details.
This counter expired on 2021-01-28 and was re-enabled on 2022-12-19.
</summary>
</histogram>
<histogram name="Blink.UseCounter.MainFrame.Features" enum="FeatureObserver"
expires_after="never">
<!-- expires-never: Companion to Blink.UseCounter.Features, which is also expires-never. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many page loads use various features across in the main frame
of a page. The PageVisits bucket is incremented at the beginning of each
page load and the other buckets incremented at most once per PageVisit via
blink::UseCounter and UseCounterPageLoadMetricsObserver throughout the
lifetime of a page load metrics observer.
This histogram counts usage of web features in main frame only. Refer to
Blink.UseCounter.Features for more details.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.PermissionsPolicy.Allow2"
enum="FeaturePolicyFeature" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the use of a specific permissions policy feature via the
"allow" attribute on iframes. Each policy is counted only once per
page load. Version 2 fixes the mismatched histogram name with data
collected.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.PermissionsPolicy.Header2"
enum="FeaturePolicyFeature" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the use of a specific permissions policy feature via both
"Feature-Policy" and "Permissions-Policy" HTTP response
header. Each policy is counted only once per page load. Version 2 fixes the
mismatched histogram name with data collected.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.PermissionsPolicy.Violation.Enforce"
enum="FeaturePolicyFeature" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the actual enforced permissions policy violation. The metrics is
triggered when ExecutionContext::IsFeatureEnabled with
ReportOptions::ReportOnFailure as param returns false, at most once per page
visit.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram name="Blink.UseCounter.WebDXFeatures" enum="WebDXFeatureObserver"
expires_after="2025-05-10">
<!-- expires-never: used by Chrome Platform Status dashboard, etc -->
<!-- https://chromestatus.com -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Count of how many page loads use various Web Platform features (as defined
by https://github.com/web-platform-dx/web-features/) across all frames in a
page. The PageVisits bucket is incremented for each page load, and the other
buckets incremented at most once per PageVisit via blink::UseCounter and
UseCounterPageLoadMetricsObserver.
Note that this histogram only counts page with HTTP/HTTPS URL scheme. Web DX
Feature used in pages with other URL schemes might be counted in other
histograms.
Not recorded if the page is prerendered and cancelled.
</summary>
</histogram>
<histogram base="true" name="Blink.UserDrivenDocumentUpdate.UpdateTime"
units="microseconds" expires_after="2024-12-08">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent preparing the document to service user driven behaviors. Examples
include inspector, selection, editing, find-in-page and focus. Includes time
spent in style update and layout.
Note: As of 04/2023, scroll updates are included in user driven behaviors.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram base="true" name="Blink.VisualUpdateDelay.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Elapsed time between when a widget first registers a state invalidation that
requires a visual refresh; and when the main thread begins a main frame that
will send the updated visual state to the compositor.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram base="true" name="Blink.WaitForCommit.UpdateTime"
units="microseconds" expires_after="2025-02-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent waiting for the compositor thread to begin processing a layer
update inside ProxyMain::BeginMainFrame.
Note: PreFCP metrics will be recorded even if FCP is not reached, whereas
AggregatedPreFCP metrics are only recorded if FCP is reached.
Note: Not recorded on ~5% of Windows machines with low-resolution clocks.
Note: The histograms with PreFCP/PostFCP/AggregatedPreFCP suffixes before
105.0.5175.0 were impacted by https://crbug.com/1330675. Be careful when
aggregating or comparing these histograms across the version.
</summary>
</histogram>
<histogram name="Blink.WebCodecs.ImageDecoder.Success" enum="BooleanSuccess"
expires_after="never">
<!-- expires-never: WebCodecs health metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a given JavaScript ImageDecoder instance completed operation
successfully or not. Logged upon destruction of the instance.
</summary>
</histogram>
<histogram name="Blink.WebCodecs.ImageDecoder.Type" enum="DecodedImageType"
expires_after="never">
<!-- expires-never: WebCodecs health metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Image codec provided to JavaScript ImageDecoder constructor. Logged once per
successful construction upon completion of construction.
</summary>
</histogram>
<histogram name="Blink.WebCodecs.{AudioCodecApi}.Codec" enum="AudioCodec"
expires_after="never">
<!-- expires-never: WebCodecs health metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The codec type used with {AudioCodecApi}. Recorded for every successful
configure() call.
</summary>
<token key="AudioCodecApi">
<variant name="AudioDecoder"/>
<variant name="AudioEncoder"/>
</token>
</histogram>
<histogram name="Blink.WebCodecs.{CodecApi}.FinalStatus" enum="MediaStatusCode"
expires_after="never">
<!-- expires-never: WebCodecs health metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The final media::StatusCode for each {CodecApi} instance. The final status
code is either StatusCode::kOk or the first fatal error encountered.
Recorded once upon destruction for each codec type.
</summary>
<token key="CodecApi">
<variant name="AudioDecoder"/>
<variant name="AudioEncoder"/>
<variant name="VideoDecoder"/>
<variant name="VideoEncoder"/>
</token>
</histogram>
<histogram name="Blink.WebCodecs.{VideoCodecApi}.Codec" enum="VideoCodec"
expires_after="never">
<!-- expires-never: WebCodecs health metric. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The codec type used with {VideoCodecApi}. Recorded for every successful
configure() call.
</summary>
<token key="VideoCodecApi">
<variant name="VideoDecoder"/>
<variant name="VideoEncoder"/>
</token>
</histogram>
<histogram name="Blink.{CookieOperation}Time" units="ms"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time it takes to perform a {CookieOperation} operation from the
CookieJar. Logged on every operation from the CookieJar.
</summary>
<token key="CookieOperation">
<variant name="Cookies"/>
<variant name="CookiesEnabled"/>
<variant name="SetCookie"/>
</token>
</histogram>
<histogram name="Blink.{Host}.RenderTaskDuration.{Context}.{Filter}"
units="microseconds" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent executing a script task that draws content to a {Context} context
of a {Host}.
Note: This metric drops reports on clients with low-resolution clocks, which
means these reports will be biased against a portion of the population on
Windows. See Windows.HasHighResolutionTimeTicks for the affected sample.
</summary>
<token key="Host">
<variant name="Canvas"/>
<variant name="OffscreenCanvas"/>
</token>
<token key="Context">
<variant name="2D.Accelerated"/>
<variant name="2D.Unaccelerated"/>
<variant name="ImageBitmap"/>
<variant name="WebGL"/>
<variant name="WebGL2"/>
<variant name="WebGPU"/>
</token>
<token key="Filter">
<variant name="All"/>
<variant name="Animation"/>
<variant name="DrawArrays"/>
<variant name="DrawElements"/>
<variant name="Image"/>
<variant name="ImageData"/>
<variant name="Path"/>
<variant name="Rectangle"/>
<variant name="Text"/>
</token>
</histogram>
<histogram name="Blink.{Host}.{Heap}.{Context}" units="KB"
expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Memory usage on the {Heap} heap in KB, sampled after the execution of script
tasks that render content to a {Host}, using a {Context} context.
</summary>
<token key="Host">
<variant name="Canvas"/>
<variant name="OffscreenCanvas"/>
</token>
<token key="Heap">
<variant name="BlinkGC"/>
<variant name="PartitionAlloc"/>
</token>
<token key="Context">
<variant name="2D.Accelerated"/>
<variant name="2D.Unaccelerated"/>
<variant name="ImageBitmap"/>
<variant name="WebGL"/>
<variant name="WebGL2"/>
<variant name="WebGPU"/>
</token>
</histogram>
</histograms>
</histogram-configuration>