<!--
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 Windows 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="Windows.AcLayersLoaded" enum="BooleanLoaded"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if AcLayers.dll is loaded in the browser process, indicating that
Chrome has been shimmed by Window's AppCompat mechanism. Reported once per
browser session, on startup.
</summary>
</histogram>
<histogram name="Windows.AppCompatLayersRemoved" enum="Boolean"
expires_after="2024-10-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
True if tokens were removed from the user's AppCompatFlags Layers value; see
http://crbug.com/581499. Recorded once shortly after browser startup.
</summary>
</histogram>
<histogram name="Windows.CetAvailable" enum="BooleanAvailable"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if CET (Control-flow Enforcement Technology / Hardware Enforced
Shadow Stack) is available, based on IsUserCetAvailableInEnvironment().
Reported once per browser session, on startup.
</summary>
</histogram>
<histogram name="Windows.CetEnabled" enum="BooleanEnabled"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if CET (Control-flow Enforcement Technology / Hardware Enforced
Shadow Stack) is enabled or if it has been disabled by IFEO. Reported only
if CetAvailable is true, once per browser session, on startup. Note: This
was recorded incorrectly in M91.
</summary>
</histogram>
<histogram name="Windows.DisplayIdFromDeviceId" enum="DisplayIdResult"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of deriving a display ID from DISPLAY_DEVICE::DeviceId.
Recorded once for each monitor detected by the OS during startup of chrome
and after any monitor topology changes (addition/removal) thereafter.
</summary>
</histogram>
<histogram name="Windows.DisplayIdFromDeviceKey" enum="DisplayIdResult"
expires_after="2025-05-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of deriving a display ID from DISPLAY_DEVICE::DeviceKey.
Recorded once for each monitor detected by the OS during startup of chrome
and after any monitor topology changes (addition/removal) thereafter.
</summary>
</histogram>
<histogram name="Windows.Enclave.{Type}.Available" enum="BooleanAvailable"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not support for {Type} is/are available for use on the system, by
calling IsEnclaveTypeSupported. Reported once per browser session, on
startup.
</summary>
<token key="Type">
<variant name="SGX"
summary="an enclave for the Intel Software Guard Extensions (SGX)
architecture extension"/>
<variant name="SGX2"
summary="SGX2 and SGX1 enclaves (the platform and OS support SGX2
instructions with EDMM on this platform - in addition to
other SGX2 constructs)"/>
<variant name="VBS"
summary="a virtualization-based security (VBS) enclave"/>
<variant name="VBSBasic"
summary="a virtualization-based security (VBS) basic enclave"/>
</token>
</histogram>
<histogram name="Windows.FeatureNotificationsSettingChange"
enum="BooleanEnabled" expires_after="2025-07-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Reported when the user toggles the feature notifications setting in Chrome's
System settings. Its value represents what the setting was changed to.
</summary>
</histogram>
<histogram name="Windows.HasHighResolutionTimeTicks" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The value of TimeTicks::IsHighResolution(). Reported once per browser
session, on startup.
</summary>
</histogram>
<histogram name="Windows.HasThreadTicks" enum="Boolean"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The value of ThreadTicks::IsSupported(). Reported once per browser session,
on startup.
</summary>
</histogram>
<histogram name="Windows.HighResolutionTimerUsage" units="%"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Percentage of elapsed time the high resolution timer is activated. The usage
is reported by each of Chrome processes individually (without aggregation)
and logged every 10 minutes.
</summary>
</histogram>
<histogram name="Windows.HypervPresent" enum="BooleanEnabled"
expires_after="2025-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Hyper-V is enabled on this machine. Logged shortly after startup.
This metric will only be logged on Windows 10+.
</summary>
</histogram>
<histogram name="Windows.InstallerPinUnpinned" enum="IsPinnedToTaskbarResult"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not the user unpinned Chrome after the installer pinned
Chrome, on Win10+. Recorded when Chrome checks if Chrome is pinned to the
taskbar, on startup. This check is currently done on 1% of startups. Records
true if the installer pinned Chrome, and it's no longer pinned, false if the
installer pinned Chrome and it's still pinned. The unpin is only recorded at
most once per user, whereas the still pinned state is recorded on every
launch that checks if Chrome is pinned to the taskbar.
</summary>
</histogram>
<histogram name="Windows.IsPinnedToTaskbar" enum="IsPinnedToTaskbarResult"
expires_after="never">
<!-- expires-never: Used to assess Chrome usage on Windows -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates whether Chrome is pinned to the Windows taskbar for the current
user. Recorded shortly after startup.
</summary>
</histogram>
<histogram name="Windows.LegacyDisplayIdAlgorithm" enum="UsedDisplayIdFallback"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when a monitor is missing DISPLAYCONFIG_PATH_INFO to derive a
display ID and instead used the fallback legacy algorithm. Recorded once for
each monitor detected by the OS during startup of chrome and after any
monitor topology changes (addition/removal) thereafter.
</summary>
</histogram>
<histogram name="Windows.ParallelDllLoadingEnabled" enum="BooleanEnabled"
expires_after="never">
<!-- expires-never: Needed to measure third party incompatibilities on Windows which could happen at any time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not parallel DLL loading is enabled for the browser
process executable. This is recorded once per browser session, on startup.
</summary>
</histogram>
<histogram name="Windows.ParentProcessNameHash" enum="ProcessNameHash"
expires_after="never">
<!-- expires-never: Needed to measure third party incompatibilities on Windows which could happen at any time. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The 32-bit hash of the lower-case parent process basename (e.g.
explorer.exe) of the main Chrome executable. Reported once during startup as
part of install verification.
</summary>
</histogram>
<histogram name="Windows.PatchLevel" enum="WindowsPatchLevel"
expires_after="never">
<!-- expires-never: Needed to measure Windows ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A 32-bit value formed from combining the minor and patch level of the
currently running Windows operating system as reported by GetVersionEx().
E.g. "Windows 10 OS Version 1809 (Build 17763.503)" would be 17763
(0x4563), combined with 503 (0x1F7) = 0x456301F7. If either minor or patch
level exceeds the value that can fit in a 16-bit unsigned integer, then this
histogram will report 0. Reported once, shortly after browser startup.
</summary>
</histogram>
<histogram name="Windows.PatchLevelKernel32" enum="WindowsPatchLevel"
expires_after="never">
<!-- expires-never: Needed to measure Windows ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A 32-bit value formed from combining the minor and patch level of the
currently running Windows operating system as reported by VerQueryValue() of
kernel32.dll. E.g. "Windows 10 OS Version 1809 (Build 17763.503)"
would be 17763 (0x4563), combined with 503 (0x1F7) = 0x456301F7. If either
minor or patch level exceeds the value that can fit in a 16-bit unsigned
integer, then this histogram will report 0. Reported once, shortly after
browser startup.
</summary>
</histogram>
<histogram name="Windows.ProcessorFamily" enum="ProcessorFamily"
expires_after="2025-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The processor family type. Logged shortly after startup. The value is
specified in the SMBIOS specification, section 7.5.2:
https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
This metric will only be logged on Windows 10+.
</summary>
</histogram>
<histogram name="Windows.ProcessorVirtualizationFirmwareEnabled"
enum="BooleanEnabled" expires_after="2025-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether virtualization has been enabled in the system firmware. Logged
shortly after startup. This metric will only be logged on Windows 10+.
</summary>
</histogram>
<histogram name="Windows.TimeInSelectFileDialog" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration of a call to ui::ExecuteSelectFile. This includes the time to
open/close the file select dialog and the time spent by the user in it.
Eliminating hangs that occur when opening the file select dialog should move
this metric. Reported every time ui::ExecuteSelectFile is called via
UtilWinImpl::CallExecuteSelectFile.
</summary>
</histogram>
</histograms>
</histogram-configuration>