<!--
Copyright 2022 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 Views histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="BubbleName">
<variant name="All" summary="Aggregated metrics for all bubbles"/>
<variant name="DownloadBubbleContentsView"
summary="Aggregated metrics DownloadBubbleContentsView bubbles"/>
<variant name="ExtensionsMenuView"
summary="Aggregated metrics for ExtensionsMenuView bubbles"/>
<variant name="PageInfoBubbleViewBase"
summary="Aggregated metrics for PageInfoBubbleViewBase bubbles"/>
<variant name="PermissionPromptBaseView"
summary="Aggregated metrics for PermissionPromptBaseView bubbles"/>
<variant name="ProfileMenuViewBase"
summary="Aggregated metrics for ProfileMenuViewBase bubbles"/>
</variants>
<histogram name="Bubble.{BubbleName}.CloseReason" enum="WidgetClosedReason"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the reason a bubble was closed.</summary>
<token key="BubbleName" variants="BubbleName"/>
</histogram>
<histogram name="Bubble.{BubbleName}.CreateToPresentationTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes from a bubble construction to when the compositor
finishes the first presentation.
</summary>
<token key="BubbleName" variants="BubbleName"/>
</histogram>
<histogram name="Bubble.{BubbleName}.CreateToVisibleTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes from a bubble construction to when the bubble
becomes visible.
</summary>
<token key="BubbleName" variants="BubbleName"/>
</histogram>
<histogram name="Bubble.{BubbleName}.TimeVisible" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the time a bubble is visible.</summary>
<token key="BubbleName" variants="BubbleName"/>
</histogram>
<histogram name="Views.ColorProviderCacheSize" units="entries"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the ColorProviderManager cache when a new ColorProvider
is generated. New entries are generated when a client requests a
ColorProvider with a Key that is not in the cache. Since the cache size is
capped, a distribution with too many results at the tail indicate that the
cache is too small.
</summary>
</histogram>
<histogram name="Views.InvalidatesDuringLayout" units="count"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of times a view's InvalidateLayout() method is called
during a Layout() call. Calling InvalidateLayout() during a layout call
should never be necessary.
</summary>
</histogram>
<histogram name="Views.LayoutCallDepth" units="count"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum reentrant call depth seen during a view's layout. Normally this
value will be one (Layout() was not reentered). But, we know Layout() is
reentered sometimes in some views (where the value will be two), and want to
measure how often that is. We also want to know if Layout() is ever
reentered more than two deep.
</summary>
</histogram>
<histogram name="Views.UnnecessaryLayouts" units="count"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records excess layouts of a view that will not be visible. This includes
doing more than one layout between paints, or any layouts after the final
paint. While some such layouts might be unavoidable in computing
layout-related properties during other operations, these mostly represent
unnecessary work. The zero bucket counts cases where all the layouts we did
were necessary, i.e. paints that had a single preceding layout.
</summary>
</histogram>
<histogram
name="Views.{Process}.NumColorProvidersInitializedDuringOnNativeThemeUpdated"
units="providers" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of ColorProvider instances constructed and initialized by
the ColorProviderManager following a NativeTheme update in a {Process}
process. Emitted after the NotifyOnNativeThemeUpdated() event has been
processed.
</summary>
<token key="Process">
<variant name="Browser"/>
<variant name="NonBrowser"/>
</token>
</histogram>
<histogram name="Views.{Process}.TimeSpentInitializingColorProvider" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time spent initializing a newly constructed ColorProvider
instance in a {Process} process. The timer starts immediately before the
ColorProvider is constructed and emitted immediately after initialization
(i.e. all mixers are run and the ColorMap is created).
</summary>
<token key="Process">
<variant name="Browser"/>
<variant name="NonBrowser"/>
</token>
</histogram>
<histogram name="Views.{Process}.TimeSpentProcessingOnNativeThemeUpdatedEvent"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time spent synchronously processing the the
NotifyOnNativeThemeUpdated() event in a {Process} process. The timer starts
as soon as the event handler is entered and emitted when code returns from
the event handler.
</summary>
<token key="Process">
<variant name="Browser"/>
<variant name="NonBrowser"/>
</token>
</histogram>
</histograms>
</histogram-configuration>