chromium/tools/metrics/histograms/metadata/chrome/histograms.xml

<!--
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 Chrome 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>

<histogram name="Chrome.AppMenu.MenuHostInitToNextFramePresented" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time from when Widget::Show() is called to when the first frame is
    presented for the App Menu. It's logged every time the app menu opens.
  </summary>
</histogram>

<histogram name="Chrome.BuildState.BuildStateUpdateType"
    enum="BuildStateUpdateType" expires_after="2024-10-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Result of polling for the installed version of Chrome. Logged once at
    startup then approximately every two hours.
  </summary>
</histogram>

<histogram name="Chrome.Frame.MouseDownCaptionHitTestInReservedGrabHandleSpace"
    enum="Boolean" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded only for Windows on every primary button mouse down determined to
    be in the caption area of Chrome. True if the primary button mouse down was
    in the reserved grab handle space, false otherwise.
  </summary>
</histogram>

<histogram name="Chrome.Headless.Action" enum="HeadlessChromeAction"
    expires_after="2023-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records headless chrome action, e.g. remote debugging, screenshot, print to
    PDF, DOM dump. Reported once when the browser process is launched in
    headless mode. If more than one action is requested only one will be
    reported.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.JoinSet.Action"
    enum="KAnonymityServiceJoinSetAction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Track execution of KAnonymity Service JoinSet requests for both normal
    operation and errors. The kJoinSet enumeration is emitted when the service
    is called and either kJoinSetSuccess or one of the error enumerations is
    emitted at the end of the request.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.JoinSet.Latency" units="ms"
    expires_after="2023-08-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the length of time the K-Anonymity service spends processing a
    JoinSet request. This includes time taking waiting in the JoinSet queue,
    getting a trust token (if necessary), performing the request, and waiting
    for the response. This metric is only measured for successful requests.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.QuerySet.Action"
    enum="KAnonymityServiceQuerySetAction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Track execution of KAnonymity Service QuerySet requests for both normal
    operation and errors. The kQuerySet enumeration is emitted when the service
    is called and either kQuerySetsSuccess or one of the error enumerations is
    emitted at the end of the request.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.QuerySet.Latency" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the length of time the K-Anonymity service spends processing a
    QuerySet request. This includes time taking waiting in the QuerySet queue,
    formatting the request, performing the request, waiting for the response,
    and parsing the response. This metric is only measured for successful
    requests.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.QuerySet.Size" units="count"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of elements queried per call for each call to QuerySet.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.TrustTokenGetter.Action"
    enum="KAnonymityTrustTokenGetterAction" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Track execution of KAnonymityTrustTokenGetter requests for both normal
    operation and errors. The kTryGetTrustTokenAndKey enumeration is emitted
    when the service is called and either kGetTrustTokenSuccess or one of the
    error enumerations is emitted at the end of the request. Note: This metric
    expired after M117 and before M121.
  </summary>
</histogram>

<histogram name="Chrome.KAnonymityService.TrustTokenGetter.Latency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how the length of time the K-Anonymity service spends fetching trust
    tokens. This includes time taken waiting in the TrustTokenGetter queue,
    getting the OAuth token, getting the key commitment, and requesting the
    trust token. This metric is only measured for successful requests.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.NotifyResult" enum="NotifyResult"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of every rendez-vous reported once per browser process launch.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.RemoteHungProcessTerminateReason"
    enum="RemoteHungProcessTerminateReason" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The reason of remote hang processes termination.</summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.RemoteProcessInteractionResult"
    enum="RemoteProcessInteractionResult" expires_after="2024-10-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Used to send the result of interaction with remote process as histograms in
    case when remote process influences on start.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TerminateProcessErrorCode.Posix"
    enum="PopularOSErrno" expires_after="2024-06-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The error code of remote process termination on Posix in case when remote
    process hung.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TerminateProcessErrorCode.Windows"
    enum="WinGetLastError" expires_after="2024-10-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The error code of remote process termination on Windows in case when remote
    process hung.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TerminateProcessTime" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it takes from TerminateProcess call to the moment when we stop waiting
    for remote process switches to signal state.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TerminationWaitErrorCode.Windows"
    enum="WinGetLastError" expires_after="2024-06-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The error code of wating for remote process termination on Windows.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TimeToCreate" units="ms"
    expires_after="2024-06-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it takes to grab the process singleton. Reported once per successful
    attempt at obtaining the singleton.
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TimeToFailure" units="ms"
    expires_after="2024-06-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it takes to return an error from the process singleton algorithm (nor
    succeeding in obtaining it, nor in generating a rendez-vous). This does not
    include time spent in the fast notification path (chrome_exe_main_win.cc).
  </summary>
</histogram>

<histogram name="Chrome.ProcessSingleton.TimeToNotify" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it takes to find the process singleton owner and notify it. Reported
    once per successful rendez-vous. This does not include time spent in the
    fast notification path (chrome_exe_main_win.cc).
  </summary>
</histogram>

<histogram
    name="Chrome.SystemNetworkContextManager.NetworkSandboxLaunchFailed.ErrorCode"
    enum="LaunchErrorCodes" expires_after="2023-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The platform-specific error code returned from a failed attempt to launch
    the network service process sandboxed. This is recorded if an attempt is
    made to launch a sandboxed network service process, and the launch fails.
    See also ChildProcess.LaunchFailed.UtilityProcessErrorCode.
  </summary>
</histogram>

<histogram
    name="Chrome.SystemNetworkContextManager.NetworkSandboxLaunchFailed.WinLastError"
    enum="WinGetLastError" expires_after="2023-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Windows last error obtained from a call to GetLastError after a failed
    attempt to launch the network service process sandboxed. This is recorded if
    an attempt is made to launch a sandboxed network service process on Windows,
    and the launch fails. See also ChildProcess.LaunchFailed.WinLastError.
  </summary>
</histogram>

<histogram name="Chrome.SystemNetworkContextManager.NetworkSandboxState"
    enum="NetworkSandboxState" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The operational state of the network sandbox. This is recorded each time the
    browser attempts to launch the network service process. This might be
    recorded multiple times from the same client if the network service process
    crashes or does not launch correctly. This is not recorded if the network
    service is running in-process.
  </summary>
</histogram>

<histogram name="Chrome.Tabs.AnimationSmoothness.HoverCard.FadeIn" units="%"
    expires_after="2025-05-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the animation smoothness for the fade-in animation of tab hover card.
  </summary>
</histogram>

<histogram name="Chrome.Tabs.AnimationSmoothness.HoverCard.FadeOut" units="%"
    expires_after="2025-05-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the animation smoothness for the fade-out animation of tab hover
    card.
  </summary>
</histogram>

<histogram name="Chrome.Tabs.AnimationSmoothness.TabLoading" units="%"
    expires_after="2025-03-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the animation smoothness of tab loading animation. A tracker starts
    when the first tab loading animation starts and stops after the last one
    stops for each browser window. The metric is emitted when the tracker stops.
  </summary>
</histogram>

<histogram name="Chrome.WrenchMenu.MenuButtonPressedToMenuShown" units="ms"
    expires_after="2024-11-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the latency from when the app menu button is pressed to when the
    menu is shown. It's logged every time the button is pressed.

    This metric will be removed after M121 and is replaced by
    Chrome.AppMenu.MenuHostInitToNextFramePresented. We do not want to use menu
    button's compositor to track the app menu creation time.
  </summary>
</histogram>

<histogram name="Chrome.WrenchMenu.MenuHostInitToNextFramePresented" units="ms"
    expires_after="2024-11-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records time from when the menu host initialization is started to when the
    next frame is successfully presented. It's logged every time the app menu
    opens.

    This metric will be removed after M121 and is replaced by
    Chrome.AppMenu.MenuHostInitToNextFramePresented. We do not want to use menu
    button's compositor to track the app menu creation time.
  </summary>
</histogram>

<histogram name="ChromeColors.ColorOnLoad" enum="ChromeColorsInfo"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records installed color id every time theme service is initialized from
    prefs. Happens once per profile load if the user has a GM2 color installed.

    This histogram records only GM2 colors. For tracking the installed GM3 color
    see the ChromeColors.DynamicColorOnLoad histogram. Or see the
    ChromeColors.ColorType histogram for the type of installed Chrome color.
  </summary>
</histogram>

<histogram name="ChromeColors.ColorType" enum="ChromeColorType"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records installed color type every time theme service is initialized from
    prefs. Happens once per profile load if the user has a Chrome color
    installed.

    To track, which color is installed see the ChromeColors.ColorOnLoad
    histogram for GM2 colors and the ChromeColors.DynamicColorOnLoad histogram
    for GM3 colors.
  </summary>
</histogram>

<histogram name="ChromeColors.DynamicColorOnLoad"
    enum="DynamicChromeColorsInfo" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records installed color id every time theme service is initialized from
    prefs. Happens once per profile load if the user has a GM3 color installed.

    This histogram records only GM3 colors. For tracking the installed GM2 color
    see the ChromeColors.ColorOnLoad histogram. Or see the
    ChromeColors.ColorType histogram for the type of installed Chrome color.
  </summary>
</histogram>

<histogram name="ChromeElf.ApplyHookResult" enum="NTSTATUS"
    expires_after="M121">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the NTSTATUS result that was returned when attempting to hook
    NtMapViewOfSection during chrome_elf.dll initialization. Emitted
    asynchronously shortly after startup. This histogram was expired between M82
    and M114.
  </summary>
</histogram>

<histogram name="ChromeElf.Beacon.RetryAttemptsBeforeSuccess" units="units"
    expires_after="M121">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of attempts needed before third-party DLL blocking was
    properly set up. This is logged immediately after a successful setup. Only
    recorded on Windows. This histogram was expired between M82 and M114.
  </summary>
</histogram>

<histogram name="ChromeElf.Beacon.SetupStatus" enum="BlocklistSetup"
    expires_after="M121">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the successes and failures when running the third-party DLL blocking
    setup code, taking into account the safety beacon. Used to determine how
    often the third-party DLL blocking is disabled because it failed to
    initialize properly twice in a row. Only recorded on Windows. This histogram
    was expired between M82 and M114.
  </summary>
</histogram>

<histogram name="ChromeElf.ExtensionPoint.EnableState"
    enum="ExtensionPointEnableState" expires_after="M121">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the outcome of the heuristic to selectively enable or disable the
    ProcessExtensionPointDisablePolicy. Used to determine how often the policy
    will be enabled in practice, as the heuristic detects the presence of third
    party software. Only recorded on Windows. This histogram was expired between
    M93 and M114.
  </summary>
</histogram>

<histogram name="ChromeGeneratedCustomTab.IntentToFirstNavigationStartTime"
    units="ms" expires_after="M81">
  <owner>[email protected]</owner>
  <summary>
    For Custom Tabs generated by Chrome itself instead of external apps, this
    shows the time between the intent arrival in the CCT and the first
    navigation start. Recorded when the page has finished loading.
  </summary>
</histogram>

<histogram name="ChromeGeneratedCustomTab.IntentToPageLoadedTime" units="ms"
    expires_after="M77">
  <owner>[email protected]</owner>
  <summary>
    For Custom Tabs generated by Chrome itself instead of external apps, this
    shows time between the intent arrival in the CCT and the first &quot;page
    loaded&quot; event, if the navigation is successful.
  </summary>
</histogram>

</histograms>

</histogram-configuration>