| <!-- |
| 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 |
| chromium-metrics-reviews@google.com. |
| --> |
| |
| <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="BlinkUpdateTimeSuffixes"> |
| <variant name=".AggregatedPreFCP" |
| summary="All the time spent Pre First Contentful Paint in this |
| component"/> |
| <variant name=".PostFCP" |
| summary="Update occurred after First Contentful Paint."/> |
| <variant name=".PreFCP" |
| summary="Update occurred before First Contentful Paint."/> |
| </variants> |
| |
| <variants name="PerAnimationFrameInteractionType"> |
| <variant name="All" |
| summary="all animation frames overlapping with any interaction type"/> |
| <variant name="Both" |
| summary="animation frames overlapping with BOTH keyboard and pointer |
| interactions"/> |
| <variant name="Keyboard" |
| summary="animation frames overlapping a keyboard interaction"/> |
| <variant name="TapOrClick" |
| summary="animation frames overlapping a pointer interaction (taps or |
| clicks)"/> |
| </variants> |
| |
| <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="2025-05-01"> |
| <owner>kevers@chromium.org</owner> |
| <owner>chrome-a11y-core@chromium.org</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-09-28"> |
| <owner>kevers@chromium.org</owner> |
| <owner>chrome-a11y-core@chromium.org</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>aleventhal@chromium.org</owner> |
| <owner>chrome-a11y-core@chromium.org</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 name="Blink.Accessibility.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>ikilpatrick@chromium.org</owner> |
| <owner>layout-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.AnchorElementInteractionTracker.ClickDistanceFromPreviousPointerDown{orientation}" |
| units="%" expires_after="2025-03-09"> |
| <owner>adithyas@chromium.org</owner> |
| <owner>chrome-instant-ecosystem@google.com</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-05-11"> |
| <owner>adithyas@chromium.org</owner> |
| <owner>chrome-instant-ecosystem@google.com</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 |
| name="Blink.AnchorElementMetricsIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Animate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Animation.CompositedAnimationFailureReason" |
| enum="CompositorAnimationsFailureReason" expires_after="2025-09-28"> |
| <owner>smcgruer@chromium.org</owner> |
| <owner>animations-dev@chromium.org</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>kevers@chromium.org</owner> |
| <owner>animations-dev@chromium.org</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-09-14"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>jpgravel@chromium.org</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-09-14"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>jpgravel@chromium.org</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-07-13"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>jpgravel@chromium.org</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-09-14"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>jpgravel@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>jpgravel@chromium.org</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-10-12"> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>junov@chromium.org</owner> |
| <summary> |
| Records the state of the willReadFrequently flag during Canvas2D readback. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Canvas.GPUFallbackToCPU" |
| enum="CanvasGPUFallbackToCPUScenario" expires_after="2025-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>junov@chromium.org</owner> |
| <owner>fserb@chromium.org</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-08-10"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>junov@chromium.org</owner> |
| <owner>fserb@chromium.org</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-10-05"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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-08-10"> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</owner> |
| <summary>Logs if the canvas resource provider is accelerated or not.</summary> |
| </histogram> |
| |
| <histogram name="Blink.Canvas.ResourceProviderType" |
| enum="CanvasResourceProviderType" expires_after="2025-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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-10-12"> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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-10-12"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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.ToDataURLCompressionRatio.PNG" |
| units="encoded bytes per 100 image bytes" expires_after="2025-10-12"> |
| <owner>lukasza@chromium.org</owner> |
| <owner>danieldilan@google.com</owner> |
| <owner>fmalita@chromium.org</owner> |
| <owner>aaronhk@chromium.org</owner> |
| <summary> |
| Number of bytes of the encoded PNG per 100 bytes of the input image. |
| |
| Note the numerator is the number of bytes of the encoded PNG **before** it |
| gets base64-encoding and converted into a data URI. |
| |
| For example, an 8x8 image of RGBA8 pixels takes 256 bytes in memory. If such |
| image gets encoded as 192 bytes (i.e. 75% of 256 bytes), then the metrics |
| here will be 75. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.Canvas.ToDataURLScaledDuration{BlinkCanvasToDataURLMimeType}" |
| units="microseconds/sqrt(pixels)" expires_after="2025-10-12"> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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>junov@chromium.org</owner> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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-10-12"> |
| <owner>zmo@chromium.org</owner> |
| <owner>webgl-team@google.com</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>estade@chromium.org</owner> |
| <owner>storage-dev@chromium.org</owner> |
| <owner>snianu@microsoft.com</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-10-05"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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 name="Blink.CompositingCommit.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.CompositingInputs.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Compression.CompressionStream.Format" |
| enum="CompressionStreamsFormat" expires_after="2023-03-26"> |
| <owner>ricea@chromium.org</owner> |
| <owner>yhirano@chromium.org</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>ricea@chromium.org</owner> |
| <owner>yhirano@chromium.org</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 |
| name="Blink.ContentDocumentUpdate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.ContextMenu.ImageSelection.Depth" units="count" |
| expires_after="2023-08-31"> |
| <owner>flackr@chromium.org</owner> |
| <owner>blink-interactions-team@google.com</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>flackr@chromium.org</owner> |
| <owner>blink-interactions-team@google.com</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>flackr@chromium.org</owner> |
| <owner>blink-interactions-team@google.com</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>flackr@chromium.org</owner> |
| <owner>blink-interactions-team@google.com</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-11-02"> |
| <owner>gjc@chromium.org</owner> |
| <owner>loading-dev@chromium.org</owner> |
| <owner>blink-network-dev@chromium.org</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-09-22"> |
| <owner>pdr@chromium.org</owner> |
| <owner>wangxianzhu@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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-09-14"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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-09-14"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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-09-14"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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-10-12"> |
| <owner>jyrki@google.com</owner> |
| <owner>compression-dev@google.com</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-09-14"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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="2026-03-09"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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-09-14"> |
| <owner>mcasas@chromium.org</owner> |
| <owner>andrescj@chromium.org</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-10-26"> |
| <owner>urvang@chromium.org</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="2025-12-01"> |
| <owner>mamir@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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="2025-12-01"> |
| <owner>mamir@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the result of a request to the digital identity API. Recorded when |
| the request completes. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.DisplayLockIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Document.CompleteURLTime" units="microseconds" |
| expires_after="2025-08-19"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</owner> |
| <summary> |
| Time taken to resolve a non-null URL in Document::CompleteURLWithOverride. |
| This is recorded each time a URL is resolved, and can happen multiple times |
| per navigation. |
| |
| This histogram only records metrics on machines with high-resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.DocumentLoader.CommitNavigationToStartLoadingResponse.Time.OutermostMainFrame.NewNavigation.IsHTTPOrHTTPS" |
| units="ms" expires_after="2025-10-26"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-12"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-26"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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.RequestFullscreen" |
| units="ms" expires_after="2025-04-13"> |
| <owner>btriebw@chromium.org</owner> |
| <owner>msw@chromium.org</owner> |
| <owner>web-windowing-team@google.com</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-10-26"> |
| <owner>olivierli@chromium.org</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-10-26"> |
| <owner>aattar@google.com</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.Experimental.Cookies.IpcNeeded" enum="BooleanYesNo" |
| expires_after="2025-10-26"> |
| <owner>lizeb@google.com</owner> |
| <owner>clank-performance-team@google</owner> |
| <summary> |
| When reading document.cookie, whether an IPC to the network service was |
| required. Recorded at each cookie read access. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.AccountChosenPosition.Desktop" units="count" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the number of accounts that 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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary>Records a 1 each time an accounts dialog is shown.</summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.AccountsRequestSent" enum="BooleanHit" |
| expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the outcome of the last account chooser the user sees in a button |
| flow. Recorded at most once per button flow. For example, if the user |
| selects an account on the account chooser and then clicks on the back button |
| in the next dialog where an account chooser is shown again, leaving would |
| only record one sample. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.Button.DisclosureDialogResult" |
| enum="FedCmDisclosureDialogResult" expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the outcome of the last disclosure dialog the user sees in a button |
| flow. Recorded at most once per button flow. For example, if the user clicks |
| on the back button in the disclosure dialog and then clicks on an account |
| where the disclosure dialog is shown again, leaving would only record one |
| sample. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.Button.LoadingDialogResult" |
| enum="FedCmLoadingDialogResult" expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the outcome of the loading dialog in button flow. Button flows |
| always start with a loading dialog. Recorded once per button flow dialog |
| destroyed. For example, when the dialog gets updated into an account |
| chooser, the user can then select an account and subsequently cause the |
| dialog to be destroyed once they are signed in. Upon destroyal, this metric |
| is recorded. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.Button.LoadingStatePopupInteraction" |
| enum="FedCmPopupInteraction" expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records whether the user lost focus of the pop-up and whether it was the IDP |
| or the user that closed the pop-up. Recorded once per loading state pop-up |
| window closed in button mode. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.Button.UseOtherAccountPopupInteraction" |
| enum="FedCmPopupInteraction" expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records whether the user lost focus of the pop-up and whether it was the IDP |
| or the user that closed the pop-up. Recorded once per use other account |
| pop-up window closed in button mode. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.CancelReason" enum="FedCmCancelReason" |
| expires_after="2025-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.ClosedSheetType.Android" enum="FedCmSheetType" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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 caller frame is compared with the |
| site of the main frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.DomainHint.NumMatchingAccounts" |
| enum="FedCmNumAccounts" expires_after="2025-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the number of accounts that 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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.FrameType" enum="FedCmRequesterFrameType" |
| expires_after="2025-10-19"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the type of frame that invokes the FedCM API call. Records once per |
| API call. Possible values are: main frame, same-site iframe, and cross-site |
| iframe, where the site of the caller frame is compared with the site of the |
| main frame. Same-origin iframes are recorded under the same-site category. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.HasSigninAccount" enum="BooleanYesNo" |
| expires_after="2025-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records whether a user is signing up with the API. Records once per |
| successful account fetch from the IdP server after the accounts filtering. |
| If there are multiple accounts, record the user as sign-in if IdP claims at |
| least one of the accounts is sign-in. If an IdP does not share the user's |
| sign-in state, record the state stored in the browser. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.IdentityProvidersCount" units="count" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the count of identity providers right before fetching endpoints with |
| multi IDP flag enabled. It counts distint providers including the ones a |
| user is not signed in to. Recorded at most once per API call before the |
| browser starts fetching from the IdPs. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.IdpSigninRequestInitiatedByUser" |
| enum="BooleanYesNo" expires_after="2025-10-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the number of accounts that 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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary>Records a 1 each time a mismatch dialog is shown.</summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.MismatchDialogType" enum="FedCmMismatchDialogType" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.MultipleRequestsFromDifferentIdPs" enum="Boolean" |
| expires_after="2025-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records whether an API call is rejected due to there's an existing in-flight |
| API call initiated by other IdPs. Recorded once per promise rejection |
| because of an existing API call. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.MultipleRequestsRpMode" |
| enum="FedCmMultipleRequestsRpMode" expires_after="2025-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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 caller frame is compared with the site of the main |
| frame. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.RpContext" enum="FedCmRpContext" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.RpMode" enum="FedCmRpMode" |
| expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the RP mode of the FedCM API. Recorded once per API call together |
| with Blink.FedCm.Status.RequestIdToken when the request is fulfilled (either |
| resolved or rejected). |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.RpParametersAndScopeState" |
| enum="FedCmRpParameters" expires_after="2025-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.SegmentationPlatform.UserAction" |
| enum="FedCmUserAction" expires_after="2025-08-10"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| The action taken by the user. Recorded when the FedCM UI is destroyed, if |
| the UI shown uses segmentation platform's UI volume recommendation. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.SetLoginStatusIgnored" |
| enum="FedCmSetLoginStatusIgnoredReason" expires_after="2025-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>cbiesinger@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.UseOtherAccountResult" |
| enum="FedCmUseOtherAccountResult" expires_after="2025-10-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the outcome of the user clicking on the "use other |
| account" button in FedCM. Recorded once per API call when the user |
| attempts to login with a new account via the "use other account" |
| button, when the request is fulfilled (either resolved or rejected). Only |
| considers the last "use other account" button clicked if there are |
| multiple attempts. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.UserInfo.NumAccounts" enum="FedCmNumAccounts" |
| expires_after="2025-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>npm@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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.VerifyingDialogResult" |
| enum="FedCmVerifyingDialogResult" expires_after="2025-10-12"> |
| <owner>tanzachary@chromium.org</owner> |
| <owner>web-identity-eng@google.com</owner> |
| <summary> |
| Records the outcome of the verifying dialog. Recorded once per verifying |
| dialog shown when the FedCM call is completed, i.e. at the same time as |
| Blink.FedCm.Status.RequestIdToken. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FedCm.WebContentsActive" enum="Boolean" |
| expires_after="2025-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-26"> |
| <owner>averge@chromium.org</owner> |
| <owner>gtanzer@chromium.org</owner> |
| <owner>chrome-fenced-frames-core@google.com</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-10-26"> |
| <owner>shivanisha@chromium.org</owner> |
| <owner>dom@chromium.org</owner> |
| <owner>lbrady@google.com</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.DisableUntrustedNetworkOutcome" |
| enum="FencedFrameDisableUntrustedNetworkOutcome" expires_after="2025-09-12"> |
| <owner>lbrady@google.com</owner> |
| <owner>shivanisha@chromium.org</owner> |
| <summary> |
| Records the outcome from calling disableUntrustedNetwork() in a fenced |
| frame. This is called either when the promise resolves, or when some error |
| is encountered that prevents network from being disabled. Note that this |
| histogram is not logged when the promise remains unresolved throughout the |
| lifetime of the fenced frame (i.e. it gets stuck waiting for a child fenced |
| frame to have its network disabled). |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FencedFrame.FailedSandboxLoadInTopLevelFrame" |
| enum="BooleanYesNo" expires_after="2025-08-04"> |
| <owner>shivanisha@chromium.org</owner> |
| <owner>dom@chromium.org</owner> |
| <owner>lbrady@google.com</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>shivanisha@chromium.org</owner> |
| <owner>dom@chromium.org</owner> |
| <owner>lbrady@google.com</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>shivanisha@chromium.org</owner> |
| <owner>dom@chromium.org</owner> |
| <owner>lbrady@google.com</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-08-04"> |
| <owner>shivanisha@chromium.org</owner> |
| <owner>dom@chromium.org</owner> |
| <owner>lbrady@google.com</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.FencedFrame.NotifyEventOutcome" |
| enum="FencedFrameNotifyEventOutcome" expires_after="2025-09-12"> |
| <owner>lbrady@google.com</owner> |
| <owner>shivanisha@chromium.org</owner> |
| <summary> |
| Records the outcome from calling window.fence.notifyEvent() in a fenced |
| frame, whether successful or not. Note that this only logs for notifyEvent() |
| calls from within a fenced frame; calls outside of fenced frames (which will |
| fail) are not logged. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.FencedFrame.SharedStorageGetInFencedFrameOutcome" |
| enum="SharedStorageGetInFencedFrameOutcome" expires_after="2025-09-12"> |
| <owner>lbrady@google.com</owner> |
| <owner>shivanisha@chromium.org</owner> |
| <summary> |
| Records the outcome from calling sharedStorage.get() in a fenced frame, |
| whether successful or not. Note that this only logs for get() calls from |
| within a fenced frame; calls outside of fenced frames (which will fail) are |
| not logged. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Fetch.RequestResourceTime2{SchemeOrPreload}" |
| units="microseconds" expires_after="2025-11-09"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>csharrison@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-26"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>jam@chromium.org</owner> |
| <owner>chrome-loading@google.com</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>horo@chromium.org</owner> |
| <owner>blink-network-dev@chromium.org</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-10-26"> |
| <owner>gjc@chromium.org</owner> |
| <owner>blink-network-dev@chromium.org</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>drott@chromium.org</owner> |
| <owner>layout-dev@chromium.org</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-10-26"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-26"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-26"> |
| <owner>drott@chromium.org</owner> |
| <owner>layout-dev@chromium.org</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 |
| name="Blink.ForcedStyleAndLayout.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Frame.GetCanonicalUrlRendererTime" units="microseconds" |
| expires_after="2023-09-03"> |
| <owner>carlosk@chromium.org</owner> |
| <owner>harringtond@chromium.org</owner> |
| <owner>feed@chromium.org</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 name="Blink.HandleInputEvents.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.History.VisitedLinks.IsLinkStyledAsVisited" |
| enum="Boolean" expires_after="2025-10-26"> |
| <owner>kyraseevers@chromium.org</owner> |
| <owner>janiceliu@chromium.org</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-10-26"> |
| <owner>kyraseevers@chromium.org</owner> |
| <owner>janiceliu@chromium.org</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 |
| name="Blink.HitTestDocumentUpdate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.HTMLFastPathParser.AbortedParseSize" units="bytes" |
| expires_after="2024-04-28"> |
| <owner>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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-03-30"> |
| <owner>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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-11-02"> |
| <owner>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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>sky@chromium.org</owner> |
| <owner>tebbi@chromium.org</owner> |
| <owner>dom-dev@google.com</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-10-12"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-09-14"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-09-14"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-09-14"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-10-12"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-11-02"> |
| <owner>sisidovski@chromium.org</owner> |
| <owner>chrome-loading@google.com</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>sky@chromium.org</owner> |
| <owner>dom-dev@google.com</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-09-14"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-10-12"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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.YieldedTimeByUserTiming" units="ms" |
| expires_after="2025-08-07"> |
| <owner>sisidovski@chromium.org</owner> |
| <owner>chrome-loading@google.com</owner> |
| <summary> |
| The time between when the parser has been paused by the signal from the site |
| and when it's resumed. Both pause and resume signals are triggered via |
| performance.mark(). This is measured for the experiment in |
| crbug.com/416543903. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.HTMLParsing.YieldedTimeMax4" units="microseconds" |
| expires_after="2025-01-31"> |
| <owner>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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>masonf@chromium.org</owner> |
| <owner>dom-dev@google.com</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-06-22"> |
| <owner>wtc@google.com</owner> |
| <owner>jzern@google.com</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>vmpstr@chromium.org</owner> |
| <owner>khushalsagar@chromium.org</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 |
| name="Blink.ImplCompositorCommit.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.IntersectionObservation.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.IntersectionObservationInternalCount.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="count" expires_after="2025-12-08"> |
| <owner>szager@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Number of IntersectionObserver computations for blink-internal consumers |
| that were performed during the course of a single main frame. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.IntersectionObservationJavascriptCount.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="count" expires_after="2025-12-08"> |
| <owner>szager@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| Number of IntersectionObserver computations for javascript consumers that |
| were performed during the course of a single main frame. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.JavascriptDocumentUpdate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.JavascriptIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.KeyboardLock.MethodCalled" enum="KeyboardLockMethods" |
| expires_after="2023-06-30"> |
| <owner>joedow@chromium.org</owner> |
| <owner>garykac@chromium.org</owner> |
| <summary> |
| Records each call to the navigator.keyboard{Lock|Unlock} methods. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Layout.SVGImage.Count.InOutermostMainFrame" |
| units="count" expires_after="2025-12-01"> |
| <owner>chikamune@chromium.org</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-10-12"> |
| <owner>chikamune@chromium.org</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>pdr@chromium.org</owner> |
| <owner>ikilpatrick@chromium.org</owner> |
| <owner>layout-dev@chromium.org</owner> |
| <summary> |
| Time spent in PaintLayer::UpdateLayerPositionsAfterLayout. |
| |
| Note: Not recorded on ~5% of Windows machines with low-resolution clocks. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Layout.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>layout-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.LazyLoadIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.BoostImagePriorityReason" |
| enum="BoostImagePriorityReason" expires_after="2025-11-02"> |
| <owner>chikamune@chromium.org</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-11-09"> |
| <owner>alexnj@chromium.org</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.CrossSiteFontUrls" units="count" |
| expires_after="2025-08-10"> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Counts the number of the reported font URLs in the cross site. |
| |
| This metric is emitted when predicted font URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.DeferUnusedPreload.DeferredResourceCount" |
| units="count" expires_after="2025-10-26"> |
| <owner>sisidovski@chromium.org</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-10-26"> |
| <owner>sisidovski@chromium.org</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-09-14"> |
| <owner>sisidovski@chromium.org</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-10-26"> |
| <owner>sisidovski@chromium.org</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-10-13"> |
| <owner>yyanagisawa@chromium.org</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-10-19"> |
| <owner>kouhei@chromium.org</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>alexnj@chromium.org</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>alexnj@chromium.org</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>alexnj@chromium.org</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>alexnj@chromium.org</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-11-09"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner>kouhei@chromium.org</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-09-28"> |
| <owner>kouhei@chromium.org</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.PreconnectCount" units="count" |
| expires_after="2026-05-09"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Counts the number of actual preconncted origins for image element. |
| |
| The metric is emitted as LCP Critical Path Predictor finalizes LCP candidate |
| dependencies. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.PreconnectPredictionCount" units="count" |
| expires_after="2026-05-09"> |
| <owner>alexnj@chromium.org</owner> |
| <owner>yoichio@chromium.org</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="2026-05-09"> |
| <owner>alexnj@chromium.org</owner> |
| <owner>yoichio@chromium.org</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="2026-05-09"> |
| <owner>alexnj@chromium.org</owner> |
| <owner>yoichio@chromium.org</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-09-07"> |
| <owner>yyanagisawa@chromium.org</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.PrefetchSubresource.Count.SameSiteRatio" units="%" |
| expires_after="2025-08-10"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Ratio of the same site subresource URLs in prefetching subresources using |
| LCPP prewaming HttpDiskCache database. |
| |
| This metric is emitted when predicted subresources URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.PrefetchSubresource.Count.{Site}" units="count" |
| expires_after="2025-10-12"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Counts the number of {Site} subresource URLs in prefetching subresources |
| using LCPP prewaming HttpDiskCache database. |
| |
| This metric is emitted when predicted subresources URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| <token key="Site"> |
| <variant name="CrossSite" summary="cross-site subresources"/> |
| <variant name="SameSite" summary="same-site subresources"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.PrefetchSubresource.DBBroken" enum="BooleanEnabled" |
| expires_after="2025-10-12"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Records whether LCP DB misses the type of subresource to be prefeteched. We |
| expect this rarely happens except experiment starting, where the DB scheme |
| changes. |
| |
| This metric is emitted when predicted subresources URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.PreloadedFontCount" units="count" |
| expires_after="2025-08-24"> |
| <owner>yyanagisawa@chromium.org</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-10-26"> |
| <owner>chikamune@chromium.org</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-10-26"> |
| <owner>chikamune@chromium.org</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.PrewarmHttpDiskCacheURL.Count.SameSiteRatio" |
| units="%" expires_after="2025-11-09"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Ratio of the same site subresource URLs in the all reported subresource URLs |
| in prewarming HttpDiskCache. |
| |
| This is recorded on each navigation. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.PrewarmHttpDiskCacheURL.Count.{Site}" units="count" |
| expires_after="2025-11-09"> |
| <owner>yoichio@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Counts the number of {Site} subresource URLs in prewarming HttpDiskCache |
| learnt to local LCP database. |
| |
| This is recorded on each navigation. |
| </summary> |
| <token key="Site"> |
| <variant name="CrossSite" summary="cross-site subresources"/> |
| <variant name="SameSite" summary="same-site subresources"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.RecordedFontCount" units="count" |
| expires_after="2025-08-10"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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="2025-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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-10-01"> |
| <owner>yyanagisawa@chromium.org</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="2025-06-01"> |
| <owner>yyanagisawa@chromium.org</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 name="Blink.LCPP.SameSiteFontUrlRatio" units="%" |
| expires_after="2025-08-10"> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Ratio of the same site font URLs in the all reported font URLs. |
| |
| This metric is emitted when predicted font URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LCPP.SameSiteFontUrls" units="count" |
| expires_after="2025-08-10"> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner> |
| src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS |
| </owner> |
| <summary> |
| Counts the number of the reported font URLs in the same site. |
| |
| This metric is emitted when predicted font URLs are appended to the |
| PreconnectPrediction structure for prefetching. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.LinkHeader.LoadLinksFromHeaderMode" |
| enum="LoadLinksFromHeaderMode" expires_after="2025-08-09"> |
| <owner>tnak@chromium.org</owner> |
| <owner>chrome-loading@google.com</owner> |
| <summary> |
| Counts usage of Link header in HTTP responces to subresource fetches. This |
| histogram are recorded when a HTTP responce with Link headers is received. |
| For details, see PreloadHelper::LoadLinksFromHeader(). |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.MainFrame.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.MediaIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.MemoryCache.CrossDocumentCachedResource2" |
| enum="ResourceType" expires_after="2025-05-25"> |
| <owner>gjc@chromium.org</owner> |
| <owner>blink-network-dev@chromium.org</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>gjc@chromium.org</owner> |
| <owner>blink-network-stack@chromium.org</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>hiroshige@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <owner>gjc@chromium.org</owner> |
| <owner>loading-dev@chromium.org</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>hiroshige@chromium.org</owner> |
| <owner>gjc@chromium.org</owner> |
| <owner>loading-dev@chromium.org</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>hiroshige@chromium.org</owner> |
| <owner>gjc@chromium.org</owner> |
| <owner>loading-dev@chromium.org</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-10-12"> |
| <owner>hiroshige@chromium.org</owner> |
| <owner>gjc@chromium.org</owner> |
| <owner>loading-dev@chromium.org</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>kumagi@google.com</owner> |
| <owner>gaul@google.com</owner> |
| <owner>paint-dev@google.com</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>kumagi@google.com</owner> |
| <owner>gaul@google.com</owner> |
| <owner>paint-dev@google.com</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="2025-03-27"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-09-14"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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>cduvall@chromium.org</owner> |
| <owner>jam@chromium.org</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-06-08"> |
| <owner>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>aaronhk@chromium.org</owner> |
| <owner>fserb@chromium.org</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>khushalsagar@chromium.org</owner> |
| <owner>vmpstr@chromium.org</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 name="Blink.Paint.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.ParseStyleSheet.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>jam@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.PermissionElement.InvalidStyleReason" |
| enum="PermissionElementInvalidStyleReason" expires_after="2025-10-12"> |
| <owner>tungnh@chromium.org</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.UserInteractionAccepted" |
| enum="Boolean" expires_after="2025-08-24"> |
| <owner>tungnh@chromium.org</owner> |
| <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> |
| <summary> |
| Records whether a user interaction (e.g., user click on the permission |
| element) is accepted. This metric is emitted once for every user interaction |
| that has been handled. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.PermissionElement.UserInteractionDeniedReason" |
| enum="PermissionElementUserInteractionDeniedReason" |
| expires_after="2025-10-26"> |
| <owner>tungnh@chromium.org</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 |
| name="Blink.PermissionElementIntersectionObserver.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>tungnh@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.PossibleSynchronizedScrollCount2.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="count" expires_after="2024-06-01"> |
| <owner>vollick@chromium.org</owner> |
| <owner>flackr@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.PreloadRequestStartDuration" units="microseconds" |
| expires_after="2025-09-30"> |
| <owner>sisidovski@chromium.org</owner> |
| <owner>chrome-loading@google.com</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="2025-07-27"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>swarm-team@google.com</owner> |
| <owner>chrome-loading@google.com</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 name="Blink.PrePaint.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.PrepareToStopParsingTime" units="ms" |
| expires_after="2025-10-26"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-26"> |
| <owner>nidhijaju@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-09-14"> |
| <owner>horo@chromium.org</owner> |
| <owner>net-dev@chromium.org</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.CodeFetchLatency" units="ms" |
| expires_after="2025-12-06"> |
| <owner>olivierli@chromium.org</owner> |
| <owner>leszeks@chromium.org</owner> |
| <summary> |
| Measures the time from when a code fetch is initiated to when the renderer |
| starts processesing the result. Logged for every code fetch when the |
| response is received. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.ResourceRequest.CompletionDelay2" units="ms" |
| expires_after="2025-09-14"> |
| <owner>horo@chromium.org</owner> |
| <owner>net-dev@chromium.org</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.DeferedRequestWaitingOnCodeCache" |
| enum="Boolean" expires_after="2025-10-22"> |
| <owner>olivierli@chromium.org</owner> |
| <owner>leszeks@chromium.org</owner> |
| <summary> |
| Measured on resource request completion for requests that queried the code |
| cache. True if one of these operations was delayed waiting on a response |
| from the code cache: |
| |
| 1) Receiving a response 2) Receiving a redirect 3) Completing the request. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.ResourceRequest.RedirectDelay2" units="ms" |
| expires_after="2025-09-14"> |
| <owner>horo@chromium.org</owner> |
| <owner>net-dev@chromium.org</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-09-14"> |
| <owner>horo@chromium.org</owner> |
| <owner>net-dev@chromium.org</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-09-14"> |
| <owner>horo@chromium.org</owner> |
| <owner>net-dev@chromium.org</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.ResourceRequest.WebUIBundledCachedMetadataHandler.ConsumeCache" |
| enum="BooleanSuccess" expires_after="2025-12-06"> |
| <owner>tluk@chromium.org</owner> |
| <owner>webui-everywhere@google.com</owner> |
| <summary> |
| Whether the cached metadata managed by a WebUIBundledCachedMetadataHandler |
| was successfully consumed and not rejected by V8 during script compilation. |
| Emitted immediately following WebUI script compilation started with the |
| kConsumeCodeCache compile option. The value is expected to always be true. |
| This histogram and associated code can be removed once this behavior has |
| been confirmed. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.ResourceRequest.WebUIBundledCodeCacheFetcher.DidReceiveCachedCode" |
| enum="BooleanSuccess" expires_after="2025-12-06"> |
| <owner>tluk@chromium.org</owner> |
| <owner>webui-everywhere@google.com</owner> |
| <summary> |
| Whether the the fetch request for WebUI bundled cached metadata completed |
| successfully. Emitted immediately after the request to fetch the metadata |
| from the resource bundle has completed. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.CommitToPresentationTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when commit stage of |
| rendering completes to when the browser presents the next frame with the |
| changes caused by the last event. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventCreationTimeToEventQueueTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the first event creation time |
| (timeStamp) to when it was queued on the main thread. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventCreationTimeToProcessingStart.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the first event creation time |
| (timeStamp) to when it was processed on the main thread. Traditionally, also |
| referred to as Input Delay. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventCreationToLastProcessingEnd.NoFramePresented.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the total duration when no frame is presented, which |
| is from the time when the first event is created to when the last event |
| finishes processing. To get the total duration when a frame is presented, |
| use Blink.Responsiveness.PerAnimationFrame.EventCreationToPresentationTime. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventCreationToPresentationTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the total duration between when the event is created |
| until it is presented, which is the entire interaction duration. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventQueueTimeToCommit.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the total duration between when the event is queued |
| on the main thread until commit, which is the duration on the main thread. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.EventQueueTimeToProcessingStart.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when the first event was |
| queued on the main thread to when it was processed. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.FirstProcessingStartToLastProcessingEnd.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when the first event |
| starts processing on the main thread to when the last event finishes |
| processing. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.ProcessingEndToPresentationTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when the last event |
| finishes processing on the main thread to when the browser presents the next |
| frame with the changes caused by this event. Traditionally, also referred to |
| as Presentation Delay. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.ProcessingEndToRenderStartTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when the last event |
| finishes processing on the main thread to when the rendering starts. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.RenderStartTimeToCommitTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the duration from the time when the rendering starts |
| to when commit stage of rendering completes. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.PerAnimationFrame.TotalUnaccountedEventProcessingTime.{PerAnimationFrameInteractionType}" |
| units="ms" expires_after="2025-10-30"> |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| Blink.Responsiveness.PerAnimationFrame.* is a family of metrics representing |
| the sub-parts (aka breakdowns) of Interactions. Reported per Animation Frame |
| which includes at least one Event Timing which is a part of an interaction |
| (as in INP). All subparts are based on Event Timing API measurements (and |
| so, do not include continuous events, like scrolling). |
| |
| This subpart represents the total unaccounted duration (idle time) within |
| the processing time range which is from the time when the first event starts |
| processing on the main thread to when the last event finishes processing. |
| |
| The metric is reported for {PerAnimationFrameInteractionType}. |
| </summary> |
| <token key="PerAnimationFrameInteractionType" |
| variants="PerAnimationFrameInteractionType"/> |
| </histogram> |
| |
| <histogram |
| name="Blink.Responsiveness.UserInteraction.MaxEventDuration.{InteractionType}" |
| units="ms" expires_after="never"> |
| <!-- expires-never: Supports guardrail metric debugging --> |
| |
| <owner>sullivan@chromium.org</owner> |
| <owner>mmocny@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</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-10-26"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>jam@chromium.org</owner> |
| <owner>chrome-loading@google.com</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-10-05"> |
| <owner>sisidovski@chromium.org</owner> |
| <owner>chrome-loading@google.com</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>haraken@chromium.org</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="2026-02-01"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner>kouhei@chromium.org</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>dom@chromium.org</owner> |
| <owner>chrome-loading@google.com</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="2026-02-01"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner>kouhei@chromium.org</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="2026-02-01"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner>kouhei@chromium.org</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="2026-02-01"> |
| <owner>chikamune@chromium.org</owner> |
| <owner>yyanagisawa@chromium.org</owner> |
| <owner>kouhei@chromium.org</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="2026-02-01"> |
| <owner>kouhei@chromium.org</owner> |
| <owner>hiroshige@chromium.org</owner> |
| <owner>chikamune@chromium.org</owner> |
| <owner>chrome-loading@google.com</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>cduvall@chromium.org</owner> |
| <owner>jam@google.com</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 |
| name="Blink.ServiceDocumentUpdate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.Sms.BackendAvailability" |
| enum="WebOTPBackendAvailability" expires_after="2025-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-10-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>goto@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-08-12"> |
| <owner>yigu@chromium.org</owner> |
| <owner>web-identity-eng@google.com</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-06-29"> |
| <owner>jbroman@chromium.org</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-06-29"> |
| <owner>jbroman@chromium.org</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 name="Blink.Style.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>layout-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.SVGImage.DataChanged" units="microseconds" |
| expires_after="2025-11-02"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <owner>chikamune@chromium.org</owner> |
| <owner>chrome-loading@google.com</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.UpdateViewportIntersection.RemoteFrameNeedsUpdate" |
| enum="BooleanYesNo" expires_after="2025-10-26"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>paint-dev@chromium.org</owner> |
| <summary> |
| When propagating intersection information to remote frames, whether the |
| update can be skipped or not, resulting in no IPC being sent. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Blink.UpdateViewportIntersection.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| <token key="BlinkUpdateTimeSuffixes" variants="BlinkUpdateTimeSuffixes"> |
| <variant name=""/> |
| </token> |
| </histogram> |
| |
| <histogram name="Blink.UseCounter.AboutBlankOrSrcdoc.Features" |
| enum="FeatureObserver" expires_after="2025-10-07"> |
| <owner>wjmaclean@chromium.org</owner> |
| <owner>feature-control@chromium.org</owner> |
| <summary> |
| Count of how many about:blank and about:srcdoc pages use various features |
| across all frames in the page. This histogram has the same semantics as |
| "Blink.UseCounter.Features", but applies only to `about:blank` and |
| `about:srcdoc` URLs (which that histogram does not include). Metrics are |
| emitted either at the time a document commits, or via |
| UseCounterImpl::ReportMeasurement(), depending on which feature is involved. |
| For example, SandboxedSrcdocFrameResolvesRelativeURL reports at most once |
| per PageVisit, and only when the feature is activated. |
| |
| Refer to "Blink.UseCounter.Features" for more details. |
| </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>chasej@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>chasej@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>chasej@chromium.org</owner> |
| <owner>feature-control@chromium.org</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-09-14"> |
| <owner>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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>chasej@chromium.org</owner> |
| <owner>feature-control@chromium.org</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-10-12"> |
| <owner>yhirano@chromium.org</owner> |
| <owner>mkwst@chromium.org</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>chasej@chromium.org</owner> |
| <owner>feature-control@chromium.org</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="2026-03-09"> |
| <owner>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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="2026-03-09"> |
| <owner>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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.PrivacySensitive.Enabled" |
| enum="FeaturePolicyFeature" expires_after="2026-02-19"> |
| <owner>jkarlin@chromium.org</owner> |
| <owner>chrome-ads-team@chromium.org</owner> |
| <summary> |
| Counts the use of a specific permissions policy that is enabled by the API |
| but is marked as sensitive and advertising script is in the stack when the |
| feature policy is checked. Each policy is counted only once per page load. |
| |
| Not recorded if the page is prerendered and cancelled. |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.UseCounter.PermissionsPolicy.Violation.Enforce" |
| enum="FeaturePolicyFeature" expires_after="2026-03-09"> |
| <owner>iclelland@chromium.org</owner> |
| <owner>feature-control@chromium.org</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.TotalTakenTimeForReporting.{Timing}" |
| units="ms" expires_after="2026-03-09"> |
| <owner>sisidovski@chromium.org</owner> |
| <owner>chrome-loading@google.com</owner> |
| <summary> |
| Measures the accumulated time taken by recording the feautre usage in the |
| renderer, at the timing of {Timing}. |
| |
| This metrics is recorded only when the frame is outer-most main frame, the |
| document is not the initial empty document, and the URL is HTTP or HTTPS. |
| |
| This is triggered at the {Timing} phase. |
| </summary> |
| <token key="Timing"> |
| <variant name="DidCommitLoad"/> |
| <variant name="FinishedParsing"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Blink.UseCounter.WebDXFeatures" enum="WebDXFeatureObserver" |
| expires_after="never"> |
| <!-- expires-never: used by Chrome Platform Status dashboard, etc --> |
| |
| <!-- https://chromestatus.com --> |
| |
| <owner>jstenback@google.com</owner> |
| <owner>feature-control@chromium.org</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 |
| name="Blink.UserDrivenDocumentUpdate.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.VisualUpdateDelay.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>szager@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.WaitForCommit.UpdateTime{BlinkUpdateTimeSuffixes}" |
| units="microseconds" expires_after="2025-12-08"> |
| <owner>pdr@chromium.org</owner> |
| <owner>paint-dev@chromium.org</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. |
| {BlinkUpdateTimeSuffixes} |
| </summary> |
| </histogram> |
| |
| <histogram name="Blink.WebCodecs.ImageDecoder.Success" enum="BooleanSuccess" |
| expires_after="never"> |
| <!-- expires-never: WebCodecs health metric. --> |
| |
| <owner>dalecurtis@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</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>dalecurtis@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</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>dalecurtis@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</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>dalecurtis@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</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>dalecurtis@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</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-10-26"> |
| <owner>cduvall@chromium.org</owner> |
| <owner>jam@chromium.org</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.{CookieOperation}Time.AblationDelay" units="ms" |
| expires_after="2025-10-26"> |
| <owner>elkurin@chromium.org</owner> |
| <owner>chrome-owp-storage@google.com</owner> |
| <summary> |
| Time (in ms) added to {CookieOperation} operation from the CookieJar used |
| for ablation study purpose. |
| </summary> |
| <token key="CookieOperation"> |
| <variant name="Cookies"/> |
| <variant name="SetCookie"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Blink.{Host}.RenderTaskDuration.{Context}.{Filter}" |
| units="microseconds" expires_after="2025-08-03"> |
| <owner>junov@chromium.org</owner> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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-10-12"> |
| <owner>junov@chromium.org</owner> |
| <owner>fserb@chromium.org</owner> |
| <owner>aaronhk@chromium.org</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> |