chromium/tools/metrics/histograms/metadata/power/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 Power 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="AdaptiveChargingType">
<!--
    Variants describing the type of charging used to charge to full once the hold percent is reached in Adaptive Charging.
  -->

  <variant name=""
      summary="This histogram holds historical data. More recent data can be
               found in the histogram for the `NormalCharging` variant."/>
  <variant name=".MixedCharging"/>
  <variant name=".NormalCharging"/>
  <variant name=".SlowCharging"/>
</variants>

<variants name="BatteryCapacityType">
<!--
    Variants describing the type of battery capacity.
  -->

  <variant name="Actual"
      summary="actual capacity of the battery pack. This is usually a few
               percent over the design capacity for a new battery and
               gradually degrades to 80-90% over the course of 2-4 years."/>
  <variant name="Design"
      summary="design capacity of the battery pack from the manufacturer.
               This is used to calculated the promised battery life claim
               when a device is released."/>
</variants>

<variants name="BatterySaverMode">
<!--
  Variants indicating if battery saver was enabled when the sample was recorded.
-->

  <variant name=""
      summary="all intervals no matter the battery saver mode state"/>
  <variant name=".BatterySaverDisabled"
      summary="intervals with battery saver mode disabled."/>
  <variant name=".BatterySaverEnabled"
      summary="intervals with battery saver mode enabled."/>
</variants>

<variants name="IntervalType">
<!--
    Variants describing if the histogram contains all samples, only the first
    sample, or only subsequent ones.
  -->

  <variant name="" summary="all recorded samples"/>
  <variant name=".Initial"
      summary="only the first sample recorded of the current Chrome
               execution. The discharge potentially covers an interval of
               time during which Chrome wasn't yet running"/>
  <variant name=".Periodic"
      summary="every sample recorded after the first one"/>
</variants>

<variants name="ProcessName">
  <variant name="BrowserProcess" summary=""/>
  <variant name="GPUProcess" summary=""/>
  <variant name="NetworkProcess" summary=""/>
  <variant name="PluginProcess" summary=""/>
  <variant name="PPAPIProcess" summary=""/>
  <variant name="RendererExtensionEventProcess" summary=""/>
  <variant name="RendererExtensionPersistentProcess" summary=""/>
  <variant name="RendererProcess" summary=""/>
<!-- "Total" variant used to exist but was folded into the histogram names and could not be made obsolete. -->

  <variant name="UtilityProcess" summary=""/>
  <variant name="WorkerProcess" summary=""/>
</variants>

<variants name="UsageScenario">
<!--
  Variants describing the usage scenario for a time interval. Consider updating
  both "UsageScenario10Sec" in this file, and "UsageScenario" in
  tools/metrics/histograms/metadata/browser/histograms.xml when updating this.
-->

  <variant name="" summary="all intervals no matter the usage scenario"/>
  <variant name=".AllTabsHidden_Audio"
      summary="intervals during which there was no visible tab and no video
               capture, but there was audio"/>
  <variant name=".AllTabsHidden_NoVideoCaptureOrAudio"
      summary="intervals during which there was no visible tab, no video
               capture and no audio"/>
  <variant name=".AllTabsHidden_VideoCapture"
      summary="intervals during which there was no visible tab, but there was
               video capture"/>
  <variant name=".Audio"
      summary="intervals during which there was audio and at least 1 visible
               tab, but there was no video playback or video capture"/>
  <variant name=".EmbeddedVideo_NoNavigation"
      summary="intervals during which a video played in a visible tab and
               there was no navigation and no video capture"/>
  <variant name=".EmbeddedVideo_WithNavigation"
      summary="intervals during which a video played in a visible tab and
               there was a navigation, but no video capture"/>
  <variant name=".FullscreenVideo"
      summary="intervals during which a video played in fullscreen and there
               was no video capture"/>
  <variant name=".Interaction"
      summary="intervals during which there was at least 1 visible tab and a
               user interaction, but no navigation, audio, video playback or
               video capture"/>
  <variant name=".Navigation"
      summary="intervals during which there was at least 1 visible tab and a
               navigation, but no audio, video playback or video capture"/>
  <variant name=".Passive"
      summary="intervals during which there was at least 1 visible tab, but
               no user interaction, navigation, audio, video playback or
               video capture"/>
  <variant name=".VideoCapture"
      summary="intervals during which there was at least 1 visible tab and
               video capture"/>
  <variant name=".ZeroWindow"
      summary="intervals during which there was no window"/>
</variants>

<variants name="UsageScenario10sec">
<!--
  Variants describing the usage scenario for a 10 seconds intervals. Contains
  more variants than "UsageScenario".
-->

  <variant name="" summary="10 seconds runtime intervals"/>
  <variant name=".AllTabsHidden_Audio"
      summary="10 seconds runtime intervals during which there was no visible
               tab and no video capture, but there was audio"/>
  <variant name=".AllTabsHidden_NoVideoCaptureOrAudio"
      summary="10 seconds runtime intervals ending when there was no visible
               tab, no video capture and no audio in the last 2 minutes"/>
  <variant name=".AllTabsHidden_NoVideoCaptureOrAudio_Recent"
      summary="10 seconds runtime intervals during which there was no visible
               tab, no video capture and no audio, but there was one those in
               the last 2 minutes"/>
  <variant name=".AllTabsHidden_VideoCapture"
      summary="10 seconds runtime intervals during which there was no visible
               tab, but there was video capture"/>
  <variant name=".Audio"
      summary="10 seconds runtime intervals during which there was audio and
               at least 1 visible tab, but there was no video playback or
               video capture"/>
  <variant name=".EmbeddedVideo_NoNavigation"
      summary="10 seconds runtime intervals during which a video played in a
               visible tab and there was no navigation and no video capture"/>
  <variant name=".EmbeddedVideo_WithNavigation"
      summary="10 seconds runtime intervals during which a video played in a
               visible tab and there was a navigation, but no video capture"/>
  <variant name=".FullscreenVideo"
      summary="10 seconds runtime intervals during which a video played in
               fullscreen and there was no video capture"/>
  <variant name=".Interaction"
      summary="10 seconds runtime intervals during which there was at least 1
               visible tab and a user interaction, but no navigation, audio,
               video playback or video capture"/>
  <variant name=".Navigation"
      summary="10 seconds runtime intervals during which there was at least 1
               visible tab and a navigation, but no audio, video playback or
               video capture"/>
  <variant name=".Passive"
      summary="10 seconds runtime intervals during which there was at least 1
               visible tab, but no user interaction, navigation, audio, video
               playback or video capture"/>
  <variant name=".VideoCapture"
      summary="10 seconds runtime intervals during which there was at least 1
               visible tab and video capture"/>
  <variant name=".ZeroWindow"
      summary="10 seconds runtime intervals ending when there was no window
               in the last 2 minutes"/>
  <variant name=".ZeroWindow_Recent"
      summary="10 seconds runtime intervals during which there was no window,
               but there was in the last 2 minutes"/>
</variants>

<histogram name="PerformanceMonitor.AverageCPU8.Total{UsageScenario}"
    units="1/100 %" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    See definition of PerformanceClass.AverageCPU8.ProcessName. This is recorded
    every 2 minutes for {UsageScenario} (see go/chrome_power_use_per_scenario).
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
</histogram>

<histogram name="PerformanceMonitor.AverageCPU8.{ProcessName}" units="1/100 %"
    expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Sum of the average CPU utilization of each process of the type
    {ProcessName}, read out at each two-minute interval. The utilization is in
    the 0-100% range per CPU, which is then summed up and multiplied by 100. The
    histogram is capped at 20000 (equivalent to 2 cores fully loaded). I.e. 4
    cores busy at 25% each will read as 25 * 4 * 100 = 10000. If no process of
    type {ProcessName} existed during the interval, a sample of zero is still
    emitted.

    Not recorded on Android.

    NOTE: On Windows, this is not recorded on CPUs that do not support constant
    rate TSC.
  </summary>
  <token key="ProcessName" variants="ProcessName"/>
</histogram>

<histogram name="PerformanceMonitor.HasPreciseCPUUsage" enum="Boolean"
    expires_after="2022-09-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether or not the CPU supports constant rate TSC, which allows a
    more precise calculation of the CPU usage of a process. Recorded during
    startup when the ProcessMonitor is instantiated.

    Only Recorded on Windows.
  </summary>
</histogram>

<histogram name="PerformanceMonitor.IdleWakeups2.Total{UsageScenario}"
    units="WakeupsPerSecond" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    See definition of PerformanceMonitor.IdleWakeups2.ProcessName. This is
    recorded every 2 minutes for {UsageScenario} (see
    go/chrome_power_use_per_scenario).
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
</histogram>

<histogram name="PerformanceMonitor.IdleWakeups2.{ProcessName}"
    units="WakeupsPerSecond" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The sum of the average CPU idle wakeups per second of each process of the
    type {ProcessName}, sampled every two minutes.

    NOTE: This metric has one signigicant limitation, it doesn't report the CPU
    usage of processes that terminate before the end of the interval. This means
    that short lived processes will rarely be included in the data. Furthermore,
    we know that short-lived processes are very common (see
    Renderer.ProcessLifetime). A future version of this metric will address this
    limitation.
  </summary>
  <token key="ProcessName" variants="ProcessName"/>
</histogram>

<histogram
    name="PerformanceMonitor.PackageExitIdleWakeups2.Total{UsageScenario}"
    units="WakeupsPerSecond" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    See definition of PerformanceMonitor.PackageExitIdleWakeups2.ProcessName.
    This is recorded every 2 minutes for {UsageScenario} (see
    go/chrome_power_use_per_scenario).
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
</histogram>

<histogram name="PerformanceMonitor.PackageExitIdleWakeups2.{ProcessName}"
    units="WakeupsPerSecond" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    (Mac only) The sum of the average package exit idle wakeups per second of
    each process of the type {ProcessName}, sampled every two minutes. This is a
    subset of wakeups that indicate that the processor complex was taken out of
    low-power state. For more info, see the powermetrics man page on macOS.

    NOTE: This metric has one signigicant limitation, it doesn't report the CPU
    usage of processes that terminate before the end of the interval. This means
    that short lived processes will rarely be included in the data. Furthermore,
    we know that short-lived processes are very common (see
    Renderer.ProcessLifetime). A future version of this metric will address this
    limitation.
  </summary>
  <token key="ProcessName" variants="ProcessName"/>
</histogram>

<histogram name="PerformanceMonitor.UsageScenario.LongInterval"
    enum="PerformanceMonitor.UsageScenario.LongInterval"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the usage scenario that applies to the last 2 mins of Chrome use.
    Recorded every two minutes on a timer. For more information on user
    scenarios see go/chrome_power_use_per_scenario.

    Values in the enum match the variants present in the
    &quot;UsageScenario&quot; variants.
  </summary>
</histogram>

<histogram
    name="Power.AdaptiveChargingBatteryPercentageOnUnplug{AdaptiveChargingType}"
    units="%" expires_after="2023-07-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The battery percentage of the system when the AC charger is unplugged. This
    metric is recorded upon unplug of an AC charger, unless the system is
    shutdown. Since this metric is only reported when the battery percentage has
    reached the hold percent (the battery charge % that charging is delayed at,
    which is 80%) for Adaptive Charging, most values should be high.

    We record this under several variants, which split this result by the type
    of charging that is used to charge to full once the hold percent is reached.
    Normal charging uses the default rate of charging, slow charging uses a
    battery charge current limit of 0.1C (10% of battery design capacity) and
    mixed charging is a combination of both normal and slow charging which can
    occur when the unplug time prediction moves sooner, resulting in the switch
    from slow charging to normal charging in order to finish charging by the
    unplug time predicted.

    {AdaptiveChargingType}
  </summary>
  <token key="AdaptiveChargingType" variants="AdaptiveChargingType"/>
</histogram>

<histogram
    name="Power.AdaptiveChargingDelayDelta.{AdaptiveChargingState}.{OnTimeStatus}"
    units="minutes" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The difference between the correct delay time and the actual delay time for
    Adaptive Charging, as computed by (correct delay - actual delay) in minutes.
    Adaptive Charging delays charging from a hold charge percentage, 80%, to
    full if it predicts the charger will be unplugged more than 3 hours in the
    future. The correct delay time ends exactly 3 hours before the user unplugs
    the charger, or 2 hours before the user unplugs if the available time is
    less than 3 hours. This metric is recorded upon unplug of an AC charger, if
    the hold percent was reached.

    We record this under several variants, which split this result by whether
    Adaptive Charging is enabled and active, a heuristic disabled the feature,
    the user canceled the feature for this use, the user disabled the feature,
    or the feature is not supported on the hardware class. We still record the
    metric if the feature is not supported, since we may backport support to
    older systems, and we'd like to know how well the ML model does before
    enabling support.

    Since metrics don't work with negative values, this is additionally split
    across Late and Early variants. The absolute values of negatives are
    reported under the Late variant. Positive and 0 values are reported under
    the Early variant.
  </summary>
  <token key="AdaptiveChargingState">
    <variant name="Active"/>
    <variant name="HeuristicDisabled"/>
    <variant name="NotSupported"/>
    <variant name="UserCanceled"/>
    <variant name="UserDisabled"/>
  </token>
  <token key="OnTimeStatus">
    <variant name="Early"/>
    <variant name="Late"/>
  </token>
</histogram>

<histogram name="Power.AdaptiveChargingMinutes.{ReportType}" units="minutes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total time, in minutes, for Adaptive Charging. This metric is recorded upon
    unplug unplug of an AC charger, if the hold percent (the battery charge %
    that charging is delayed at, which is 80%) for Adaptive Charging was
    reached. This is split by two variants, Available and Delay, which report
    the available time for Adaptive Charging and the delay time for Adaptive
    Charging.
  </summary>
  <token key="ReportType">
    <variant name="Available"/>
    <variant name="Delay"/>
  </token>
</histogram>

<histogram
    name="Power.AdaptiveChargingMinutesDelta.{AdaptiveChargingState}.{OnTimeStatus}"
    units="minutes" expires_after="2023-06-13">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The difference, in minutes, between when the AC charger is unplugged and
    when it was predicted to be unplugged by the Adaptive Charging feature.
    Computed as (actual - predicted). This metric is recorded upon unplug of an
    AC charger, if the hold percent (the battery charge % that charging is
    delayed at, which is 80%) for Adaptive Charging was reached.

    We record this under several variants, which split this result by whether
    Adaptive Charging is enabled and active, a heuristic disabled the feature,
    the user canceled the feature for this use, the user disabled the feature,
    or the feature is not supported on the hardware class. We still record the
    metric if the feature is not supported, since we may backport support to
    older systems, and we'd like to know how well the ML model does before
    enabling support.

    Since metrics don't work with negative values, this is additionally split
    across Late and Early variants. The absolute values of negatives are
    reported under the Late variant. Positive and 0 values are reported under
    the Early variant.
  </summary>
  <token key="AdaptiveChargingState">
    <variant name="Active"/>
    <variant name="HeuristicDisabled"/>
    <variant name="NotSupported"/>
    <variant name="UserCanceled"/>
    <variant name="UserDisabled"/>
  </token>
  <token key="OnTimeStatus">
    <variant name="Early"/>
    <variant name="Late"/>
  </token>
</histogram>

<histogram name="Power.AdaptiveChargingMinutesFullOnAC.{AdaptiveChargingState}"
    units="minutes" expires_after="2023-10-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This shows the time spent fully charged while on AC in minutes.

    We record this under several variants, which split this result by whether
    Adaptive Charging is enabled and active, a heuristic disabled the feature,
    the user canceled the feature for this use, the user disabled the feature,
    or the feature is not supported on the hardware class. We still record the
    metric if the feature is not supported, since we may backport support to
    older systems, and we'd like to know how well the ML model does before
    enabling support.
  </summary>
  <token key="AdaptiveChargingState">
    <variant name="Active"/>
    <variant name="HeuristicDisabled"/>
    <variant name="NotSupported"/>
    <variant name="UserCanceled"/>
    <variant name="UserDisabled"/>
  </token>
</histogram>

<histogram name="Power.AdaptiveChargingMinutesToFull{AdaptiveChargingType}"
    units="minutes" expires_after="2023-07-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time it takes to fully charge from the Adaptive Charging hold percent
    (the battery charge % that we delay charging at). This is recorded to make
    sure that we leave enough time for systems to fully charge to full from the
    hold percent.

    We record this under several variants, which split this result by the type
    of charging that is used to charge to full once the hold percent is reached.
    Normal charging uses the default rate of charging, slow charging uses a
    battery charge current limit of 0.1C (10% of battery design capacity) and
    mixed charging is a combination of both normal and slow charging which can
    occur when the unplug time prediction moves sooner, resulting in the switch
    from slow charging to normal charging in order to finish charging by the
    unplug time predicted.

    {AdaptiveChargingType}
  </summary>
  <token key="AdaptiveChargingType" variants="AdaptiveChargingType"/>
</histogram>

<histogram name="Power.AmbientLightOnResume" units="lux"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Ambient Light Sensor reading sampled on resume from suspend. Only
    applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="Power.AvgCpuLoad.{ProcessType}" units="%"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the average CPU load caused by the corresponding process over the
    last 30 (or more) seconds. Emitted at the end of each such period, so not
    more often that once in 30 sec. Note that CPU load can be greater than 100%
    on milti-core systems.
  </summary>
  <token key="ProcessType">
    <variant name="Browser"/>
    <variant name="GPU"/>
    <variant name="Other"/>
    <variant name="Renderer"/>
  </token>
</histogram>

<histogram name="Power.BacklightLevel{PrivacyScreenState}{PowerSource}"
    units="%" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The level of the backlight as a percentage when the privacy screen is in
    {PrivacyScreenState} state and the device is powered by {PowerSource}.
    Sampled every 30 seconds. Chrome OS only.
  </summary>
  <token key="PrivacyScreenState">
    <variant name=""
        summary="All Chrome OS, irrespective of whether privacy screens are
                 present, or privacy screen state."/>
    <variant name="PrivacyScreenDisabled"
        summary="Chrome OS with privacy screens only."/>
    <variant name="PrivacyScreenEnabled"
        summary="Chrome OS with privacy screens only."/>
  </token>
  <token key="PowerSource">
    <variant name="OnAC"/>
    <variant name="OnBattery"/>
  </token>
</histogram>

<histogram name="Power.BatteryCapacity.{BatteryCapacityType}" units="mWh"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS {BatteryCapacityType} battery capacity in milliwatt-hours.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryChargeHealth" units="%"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery charge health percentage. Sampled once when device starts
    charging.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeGranularityAvailable"
    enum="BooleanAvailable" expires_after="2024-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The availability of the battery discharge granularity. If true,
    Power.BatteryDischargeGranularity is reported for this client.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    Reported only on Windows, when a single battery is installed and the
    operating system says that the unit is mWh.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeGranularityIsOrdered"
    enum="BooleanOrdered" expires_after="2024-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Reports if the battery discharge granularities are ordered according to the
    MSDN documentation.

    The documentation states that the most coarse granularity is the first
    element among all reporting scales.

    Reported only on Windows, every time the battery state is queried.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeGranularityMilliwattHours2"
    units="milliwatt-hours" expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The granularity of the battery discharge rate value as reported by the
    operating system, if available. Always the most coarse granularity among all
    the reporting scales of the battery, regardless of the current capacity.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    Reported only on Windows, when a single battery is installed and the
    operating system says that the unit is mWh.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeGranularityRelative2"
    units="hundredth of a percent" expires_after="2024-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The granularity of the battery discharge rate value as reported by the
    operating system, if available. Always the most coarse granularity among all
    the reporting scales of the battery, regardless of the current capacity.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    Reported only on Windows, when a single battery is installed and the
    operating system says that the unit is mWh.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeMode5.TenMinutes"
    enum="BatteryDischargeMode" expires_after="2024-03-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge mode describing whether
    Power.BatteryDischargeRateMilliwatts6.TenMinutes could be reported, and why.
    Windows only.

    This is reported when a 1 minute periodic timer fires and at least 10
    minutes have elapsed since the last report or startup.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeMode5{UsageScenario}{IntervalType}"
    enum="BatteryDischargeMode" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge mode describing whether
    Power.BatteryDischargeRateMilliwatts6 could be reported, and why.

    On Windows and ChromeOS, this is reported when a 1 minute periodic timer
    fires. On macOS, this is reported when an IOPMPowerSource state change
    notification fires (typically every minute but may happen more frequently).

    This is recorded for {UsageScenario}.

    This contains {IntervalType}.
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
  <token key="IntervalType" variants="IntervalType"/>
</histogram>

<histogram name="Power.BatteryDischargeRate" units="mW"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery discharge rate in mW sampled every 30 seconds while the
    device runs on battery.
  </summary>
</histogram>

<histogram name="Power.BatteryDischargeRateMilliwatts6.TenMinutes"
    units="milliwatts" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge in milliwatts over a 10 minutes interval. Windows only.

    Example: Used capacity at the beginning of the interval: 1000 mWh, used
    capacity at the end of the interval: 1010 mWh, Discharge: (1010-1000) = 10
    mWh per 10 minutes, reported value: 60 mW.

    Reported when &quot;discharging&quot; is reported to
    Power.BatteryDischargeMode5.TenMinutes.
  </summary>
</histogram>

<histogram
    name="Power.BatteryDischargeRateMilliwatts6{UsageScenario}{IntervalType}{BatterySaverMode}"
    units="milliwatts" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge in milliwatts over a 1 minute interval.

    Example: Used capacity at the beginning of the interval: 1000 mWh, used
    capacity at the end of the interval: 1010 mWh, Discharge: (1010-1000) = 10
    mWh per 1 minute, reported value: 600 mW.

    Reported when &quot;discharging&quot; is reported to
    Power.BatteryDischargeMode5.

    This is recorded for {UsageScenario}.

    This contains {IntervalType}.

    This is recorded for {BatterySaverMode}.
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
  <token key="IntervalType" variants="IntervalType"/>
  <token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>

<histogram
    name="Power.BatteryDischargeRatePreciseMilliwatts{UsageScenario}{IntervalType}{BatterySaverMode}"
    units="milliwatts" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge in milliwatts, example: - Used capacity at the beginning
    of the interval: 1000 mWh; - Used capacity at the end of the interval: 1010
    mWh; - Discharge: (1010-1000) = 10 mWh per minute - Reported value: 600 mW.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    Clients with a coarse battery discharge granularity (&gt;17 mWh) are
    excluded.

    This is recorded for {UsageScenario}.

    This contains {IntervalType}.

    This is recorded for {BatterySaverMode}.
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
  <token key="IntervalType" variants="IntervalType"/>
  <token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>

<histogram
    name="Power.BatteryDischargeRateRelative5{UsageScenario}{IntervalType}{BatterySaverMode}"
    units="hundredth of percent" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Battery discharge rate per minute, with 1/10000 of full charge resolution,
    example: - Battery capacity = 4000 mAh; - Battery charge at the beginning of
    the interval: 3900 mAh; - Battery charge at the end of the interval: 3700
    mAh; - Discharge proportion: (3900-3700) / 4000 = 0.05 - Reported value:
    500.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    This is recorded for {UsageScenario}.

    This contains {IntervalType}.

    This is recorded for {BatterySaverMode}.
  </summary>
  <token key="UsageScenario" variants="UsageScenario"/>
  <token key="IntervalType" variants="IntervalType"/>
  <token key="BatterySaverMode" variants="BatterySaverMode"/>
</histogram>

<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery discharge rate in mW while the system was suspended,
    sampled at resume. Only reported if the system was on battery power both
    before suspending and after resuming, if the energy level didn't increase
    while suspended (which would indicate that an AC adapter was connected), and
    if the system was suspended for at least a minute.
  </summary>
</histogram>

<histogram name="Power.BatteryLife.Detail.RollingAverage.{BatteryCapacityType}"
    units="minute" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS rolling average of the battery life while in active state, measured
    in minutes using the {BatteryCapacityType}.

    This is calculated by taking the average of the last 10 samples of the
    Power.BatteryLife.{BatteryCapacityType} metrics.

    The detail version put the data outside of 5-13 hours in to the underflow
    and overflow bucket to have more data resolution at the median range.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryLife.Detail.{BatteryCapacityType}" units="minute"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery life while in active state, measured in minutes using the
    {BatteryCapacityType}.

    This is calculated using size of the battery divided by the battery
    discharge rate sampling, i.e., Power.BatteryDischargeRate. Note that the
    size of the battery is derated by the low battery shutdown percent.

    The detail version put the data outside of 5-13 hours in to the underflow
    and overflow bucket to have more data resolution at the median range.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryLife.RollingAverage.{BatteryCapacityType}"
    units="minute" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS rolling average of the battery life while in active state, measured
    in minutes using the {BatteryCapacityType}.

    This is calculated by taking the average of the last 10 samples of the
    Power.BatteryLife.{BatteryCapacityType} metrics.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryLife.{BatteryCapacityType}" units="minute"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery life while in active state, measured in minutes using the
    {BatteryCapacityType}.

    This is calculated using size of the battery divided by the battery
    discharge rate sampling, i.e., Power.BatteryDischargeRate. Note that the
    size of the battery is derated by the low battery shutdown percent.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryLifeWhileSuspended.{BatteryCapacityType}"
    units="hour" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS battery life while suspended, measured in hours using the
    {BatteryCapacityType}.

    This is calculated using size of the battery divided by the battery
    discharge rate sampling, i.e., Power.BatteryDischargeRateWhileSuspended.
  </summary>
  <token key="BatteryCapacityType" variants="BatteryCapacityType"/>
</histogram>

<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The drop in battery since the last operating system battery update as a
    percent of total device battery. If the drop is not a round percentage
    point, the unreported amount will be carried over until the battery level
    drops by a full percentage point. Recorded when the battery level drops by
    more than a percentage point. If the user charges the device, the battery
    tracking is reset (the amount carried over is reset). This histograms sum is
    most likely the most useful figure when comparing experiments. Recorded even
    when Chrome is in the background.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingAtEndOfSessionOnAC" units="%"
    expires_after="M85">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled at the end of a user session when the device is on AC.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingAtEndOfSessionOnBattery" units="%"
    expires_after="2022-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled at the end of a user session when the device is on battery.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingAtStartOfSessionOnAC" units="%"
    expires_after="2022-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled at the start of a user session when the device is on AC.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingAtStartOfSessionOnBattery" units="%"
    expires_after="2021-03-15">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled at the start of a user session when the device is on battery.
  </summary>
</histogram>

<histogram name="Power.BatteryRemainingWhenChargeStarts" units="%"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS remaining battery charge as percent of the maximum battery charge,
    sampled when charging starts.

    Warning: this histogram was expired from 2022-05-01 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.BatterySaver.UserBrightenedSec" units="seconds"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ChromeOS time from Battery Saver activation that it took the user to
    increase the backlight brightness above what Battery Saver set.
  </summary>
</histogram>

<histogram name="Power.BitfixChunks" units="units" expires_after="M77">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS (Snow RO firmware 2695.90.0 only) number of 8K chunks that were
    fixed (memory corruption corrected) for each suspend/resume cycle. Expect 0
    around 97% of the time and a non-zero value around 3% of the time.
  </summary>
</histogram>

<histogram name="Power.BitfixFixes" units="units" expires_after="M77">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS (Snow RO firmware 2695.90.0 only) number of 4-byte words that were
    fixed (memory corruption corrected) for each suspend/resume cycle. Expect 0
    around 97% of the time and a non-zero value around 3% of the time. Would be
    exactly equal to Power.BitfixChunks if there were only one corrupted word in
    each chunk but is sometimes several times higher.
  </summary>
</histogram>

<histogram name="Power.ConnectedChargingPorts"
    enum="PowerConnectedChargingPorts" expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Connected charging ports on Chrome OS. A sample is reported every time that
    the power manager polls sysfs (typically every 30 seconds). Ordinals are
    assigned based on the lexicographical ordering of power supply names from
    sysfs and have no implied correspondence with ports' physical locations. For
    example, with ports 'CROS_USB_PD_CHARGER0' and 'CROS_USB_PD_CHARGER1',
    'first' refers to the former and 'second' to the latter. To determine a
    port's physical location, see the powerd charging_ports pref in the device's
    overlay.

    Warning: this histogram was expired from 2022-04-25 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.CpuTimeSecondsPerProcessType" enum="ProcessType2"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total seconds of CPU time consumed by Chrome, split by process type.
    Currently only implemented on Android. For every second of CPU time consumed
    by one process, a sample is recorded into the bucket for the process's type.
    Samples are recorded periodically depending on the task load of each
    process's main thread. The histogram thus shows the total sum of CPU time
    seconds spent per process type across all users.

    For a histogram of daily per-user values, select &quot;Per-Client
    Aggregation Mode&quot;.
  </summary>
</histogram>

<histogram name="Power.CpuTimeSecondsPerProcessType.{Visibility}"
    enum="ProcessType2" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total seconds of CPU time consumed by Chrome/WebView in the {Visibility}
    state, split by process type. Currently only implemented on Android. For
    every second of CPU time consumed by one process, a sample is recorded into
    the bucket for the process's type. Samples are recorded periodically
    depending on the task load of each process's main thread. The histogram thus
    shows the total sum of CPU time seconds spent per process type across all
    users.

    For a histogram of daily per-user values, select &quot;Per-Client
    Aggregation Mode&quot;.
  </summary>
  <token key="Visibility">
    <variant name="Background" summary="backgrounded"/>
    <variant name="Foreground" summary="foregrounded"/>
    <variant name="Unattributed" summary="undetermined visibility"/>
  </token>
</histogram>

<histogram name="Power.CpuTimeSecondsPerThreadType.{ProcessType}"
    enum="CpuTimeMetricsThreadType" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total seconds of CPU time consumed by Chrome's {ProcessType} process, split
    by thread type. Currently only implemented on Android. For every second of
    CPU time consumed by one thread, a sample is recorded into the bucket for
    the thread's type. CPU time consumed by a process that cannot be attributed
    to a specific thread is recorded into the &quot;UnattributedThread&quot;
    bucket. Samples are recorded periodically depending on the task load of each
    process's main thread. The histogram thus shows the total sum of CPU time
    seconds spent per thread type (within {ProcessType} processes) across all
    users.

    For a histogram of daily per-user values, select &quot;Per-Client
    Aggregation Mode&quot;.
  </summary>
  <token key="ProcessType">
    <variant name="Browser" summary="browser"/>
    <variant name="GPU" summary="GPU"/>
    <variant name="Other" summary="other type of"/>
    <variant name="Renderer" summary="renderer"/>
  </token>
</histogram>

<histogram
    name="Power.DarkMode{prefers-color-scheme}.InferredDarkPageColorScheme"
    enum="BooleanIsDarkColorScheme" expires_after="2023-09-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the primary main document has an inferred dark color scheme. Emitted
    each time WebContents infers a new non-empty color scheme.
  </summary>
  <token key="prefers-color-scheme">
    <variant name=""/>
    <variant name=".DarkColorScheme" summary="when the embedder prefers dark."/>
  </token>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs" units="ms"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark
    resume.

    Warning: this histogram was expired from M85 to 2024-04-12; data may be
    missing.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.Other" units="ms"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark resume
    triggered by an unknown or unsupported wake trigger.

    Warning: this histogram was expired from 2020-08-03 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Disconnect" units="ms"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark resume
    triggered by a WiFi disconnect.

    Warning: this histogram was expired from M85 to 2024-04-12; data may be
    missing.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.Pattern" units="ms"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark resume
    triggered by a WiFi packet pattern match.

    Warning: this histogram was expired from M85 to 2024-04-12; data may be
    missing.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeDurationMs.WiFi.SSID" units="ms"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time a system spent awake every time it woke up in dark resume
    triggered by a net detect SSID match.

    Warning: this histogram was expired from M85 to 2024-04-12; data may be
    missing.
  </summary>
</histogram>

<histogram name="Power.DarkResumeWakeupsPerHour" units="units"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times a system woke up in dark resume in an hour. Note that
    this value is scaled up or down to an hour based on the amount of time the
    system spent in suspend. So if the system suspended for 20 minutes and woke
    up 3 times, it would report a value of 9.

    Warning: this histogram was expired from 2020-08-02 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.DimEvent{PowerSource}" enum="PowerDimEvent"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The dimming events inside power_manager.metrics.DimEvent, recorded when a
    quick-dim/standard-dim starts or ends. The device is on {PowerSource} when
    the metrics is recorded.
  </summary>
  <token key="PowerSource">
    <variant name="OnAC" summary="charging"/>
    <variant name="OnBattery" summary="battery"/>
  </token>
</histogram>

<histogram name="Power.DisplayAfterResumeDurationMs{PowerSource}" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the user process took to display UI on the Chrome OS device
    from suspend-to-RAM and suspend-to-Disk state, which starts when user
    processes are woken up by the kernel, and stops when SetIsProjecting signal
    is caught by power_manager. This is recorded when resuming from suspend. The
    device is on {PowerSource} when the metrics is recorded.
  </summary>
  <token key="PowerSource">
    <variant name="OnAC" summary="charging"/>
    <variant name="OnBattery" summary="battery"/>
  </token>
</histogram>

<histogram name="Power.FirmwareResumeTimeOnAC" units="ms"
    expires_after="2022-03-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the firmware took to resume the Chrome OS device from
    suspend-to-RAM state when running on AC at pre-suspend time.
  </summary>
</histogram>

<histogram name="Power.FirmwareResumeTimeOnBattery" units="ms"
    expires_after="2022-03-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the firmware took to resume the Chrome OS device from
    suspend-to-RAM state when running on battery at pre-suspend time.
  </summary>
</histogram>

<histogram
    name="Power.ForegroundBatteryDrain.30SecondsAvg2{Exclusive}{DarkeningType}"
    units="uAh" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <improvement direction="LOWER_IS_BETTER"/>
  <summary>
    Periodically samples the battery capacity drained while Chrome is a
    foreground app and the device is on battery power {DarkeningType}. Sampled
    every 30 seconds while foregrounded. Also sampled when Chrome is
    backgrounded or the device connects to a charger. {Exclusive}

    Sample values are reported in microampere-hours and averaged over successive
    sampling points without a change in capacity counter values. Since the
    capacity counter resolution differs between device models, averaging the
    values allows us to make comparisons between frequent small capacity drops
    and infrequent large drops. For example, a 20,000 uAh drop over two
    successive periods of 30 seconds will be reported as two samples of 10,000
    uAh.

    For more details, see http://bit.ly/chrome-android-foreground-battery-drain.

    Only supported on Android. For WebView, the metric considers the time during
    in which at least one WebView is visible on the screen as
    &quot;foreground&quot; time. For Chrome, it considers any time the Chrome
    app is visible, including when in multi-window mode.

    Note that the capacity counter can be implemented in different ways by
    different devices/OEMs and its accuracy can vary (across devices and at
    different times on the same device, also due to environmental factors like
    device temperature or charge level).

    We've found looking at the 99%ile-trimmed mean more useful than looking at
    specific percentiles, especially when filtering for specific device models.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
  <token key="Exclusive">
    <variant name="" summary=""/>
    <variant name=".Exclusive"
        summary="However, only battery drain that can be attributed
                 exclusively to the time Chrome/WebView was visible is
                 reported: The first drain after becoming foregrounded is not
                 reported. As a result, this metric typically doesn't include
                 drain related to app startup. Similarly, no values are
                 reported for the time after the last capacity drop in a
                 session, since these would likely under-account the actual
                 battery drain in that time. Note that other apps can still
                 contribute to the power consumed/tracked, e.g. due to using
                 resources while they are backgrounded or in a multi-window
                 context."/>
  </token>
  <token key="DarkeningType">
    <variant name="" summary=""/>
    <variant name=".DarkMode"
        summary="and the browser has dark theme preferred (web page darkening
                 only) for all WebContents"/>
    <variant name=".ForcedDarkMode"
        summary="and the browser has forced dark mode (user-agent darkening)
                 enabled for all WebContents"/>
    <variant name=".LightMode"
        summary="and the browser has forced dark mode disabled and light
                 theme preferred for all WebContents"/>
    <variant name=".MixedMode"
        summary="and there is a mix of WebContents that have forced dark mode
                 enabled, dark theme preferred, or light theme preferred"/>
  </token>
</histogram>

<histogram name="Power.ForegroundBatteryDrain.30Seconds{Exclusive}" units="uAh"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Periodically samples the battery capacity drained while Chrome is a
    foreground app and the device is on battery power. Sampled every 30 seconds
    while foregrounded. Also sampled when Chrome is backgrounded or the device
    connects to a charger. {Exclusive}

    Sample values are reported as provided by the battery capacity counter (in
    microampere-hours). Because the resolution of this counter is rather coarse
    (usually between 500 and 50,000 uAh), the uAh value may have been drained
    over a longer time period than 30 seconds. See also
    Power.ForegroundBatteryDrain.30SecondsAvg, which averages the values over
    successive sampling points without change in counter values.

    Only supported on Android. For WebView, the metric considers the time during
    in which at least one WebView is visible on the screen as
    &quot;foreground&quot; time. For Chrome, it considers any time the Chrome
    app is visible, including when in multi-window mode.

    Note that the capacity counter can be implemented in different ways by
    different devices/OEMs and its accuracy can vary (across devices and at
    different times on the same device, also due to environmental factors like
    device temperature or charge level).
  </summary>
  <token key="Exclusive">
    <variant name="" summary=""/>
    <variant name=".Exclusive"
        summary="However, only battery drain that can be attributed
                 exclusively to the time Chrome/WebView was visible is
                 reported: The first drain after becoming foregrounded is not
                 reported. As a result, this metric typically doesn't include
                 drain related to app startup. Note that other apps can still
                 contribute to the power consumed/tracked, e.g. due to using
                 resources while they are backgrounded or in a multi-window
                 context."/>
  </token>
</histogram>

<histogram name="Power.ForegroundBatteryDrain{Exclusive}" units="0.1 mAh"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records a sample for every 0.1 milliampere-hours of battery capacity that
    are drained while Chrome is a foreground app and the device is on battery
    power. The battery counter is inspected every 30 seconds while foregrounded.
    It is also inspected when Chrome is backgrounded or the device connects to a
    charger. The histogram thus shows the total sum of battery capacity consumed
    across all users. {Exclusive}

    Only supported on Android. For WebView, the metric considers the time during
    in which at least one WebView is visible on the screen as
    &quot;foreground&quot; time. For Chrome, it considers any time the Chrome
    app is visible, including when in multi-window mode.

    Note that the capacity counter can be implemented in different ways by
    different devices/OEMs and its accuracy can vary (across devices and at
    different times on the same device, also due to environmental factors like
    device temperature or charge level).

    For a histogram of daily per-user values, see the computed histogram
    Power.DailyForegroundBatteryDrain.
  </summary>
  <token key="Exclusive">
    <variant name="" summary=""/>
    <variant name=".Exclusive"
        summary="However, only battery drain that can be attributed
                 exclusively to the time Chrome/WebView was visible is
                 reported: The first drain after becoming foregrounded is not
                 reported. As a result, this metric typically doesn't include
                 drain related to app startup. Note that other apps can still
                 contribute to the power consumed/tracked, e.g. due to using
                 resources while they are backgrounded or in a multi-window
                 context."/>
  </token>
</histogram>

<histogram name="Power.ForegroundThermalState.ChangeEvent.Android"
    enum="DeviceThermalState" expires_after="2023-10-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded every time the device thermal state changes while Chrome is a
    foreground app.

    Only supported on Android.
  </summary>
</histogram>

<histogram name="Power.HasPreciseBatteryDischargeGranularity" enum="Boolean"
    expires_after="2024-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether or not the reporting client has a battery discharge
    granularity less or equal to 17 mWh, which is the threshold to report the
    Power.BatteryDischargeRatePreciseMilliwatts histogram.

    This is reported at the end of every valid 1 minute interval. An invalid
    interval is one that deviate too much from 1 minute, which can be caused by
    the computer going to sleep, or the OS sending multiple notifications in a
    row.

    Only Recorded on Windows.
  </summary>
</histogram>

<histogram name="Power.IdleTimeAfterDimOnAC" units="ms"
    expires_after="2022-04-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time since the screen dimmed sampled when the user
    becomes active again if the device runs on AC.
  </summary>
</histogram>

<histogram name="Power.IdleTimeAfterDimOnBattery" units="ms"
    expires_after="2022-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time since the screen dimmed sampled when the user
    becomes active again if the device runs on battery.
  </summary>
</histogram>

<histogram name="Power.IdleTimeAfterScreenOffOnAC" units="ms"
    expires_after="2022-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time since the screen turned off sampled when the user
    becomes active again if the device runs on AC.
  </summary>
</histogram>

<histogram name="Power.IdleTimeAfterScreenOffOnBattery" units="ms"
    expires_after="2022-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time since the screen turned off sampled when the user
    becomes active again if the device runs on battery.
  </summary>
</histogram>

<histogram name="Power.IdleTimeOnAC" units="ms" expires_after="2022-04-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time sampled when the user becomes active again if the
    device runs on AC.
  </summary>
</histogram>

<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2021-10-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS user idle time sampled when the user becomes active again if the
    device runs on battery.
  </summary>
</histogram>

<histogram name="Power.IOPMPowerSource.SamplingEventDelta" units="ms"
    expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time between each IOPMPowerSource event. The recorded value is
    clamped between 55 seconds and 65 seconds for maximum precision around the
    expected value. Only recorded on MacOS.
  </summary>
</histogram>

<histogram name="Power.IOPMPowerSource.SamplingEventDelta.MediumTimes"
    units="ms" expires_after="2024-03-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time between each IOPMPowerSource event. The recorded value is
    not clamped and covers the range from zero seconds to 3 minutes. Only
    recorded on MacOS.
  </summary>
</histogram>

<histogram name="Power.KernelResumeTimeOnAC" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the kernel took to resume the Chrome OS device from
    suspend-to-RAM state when running on AC at pre-suspend time.
  </summary>
</histogram>

<histogram name="Power.KernelResumeTimeOnBattery" units="ms"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the kernel took to resume the Chrome OS device from
    suspend-to-RAM state when running on battery at pre-suspend time.

    Warning: this histogram was expired from 2024-05-26 to 2024-07-15; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.KernelSuspendTimeOnAC" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the kernel took to suspend-to-RAM the Chrome OS device when
    running on AC.

    Warning: this histogram was expired from 2020-01-26 to 2024-07-15; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.KernelSuspendTimeOnBattery" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time that the kernel took to suspend-to-RAM the Chrome OS device when
    running on battery.

    Warning: this histogram was expired from 2022-04-10 to 2024-07-15; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.KeyboardBacklightLevel" units="%"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <summary>
    The level of the keyboard backlight as a percentage. Sampled every 30
    seconds.
  </summary>
</histogram>

<histogram name="Power.LockEvent{PowerSource}" enum="PowerLockEvent"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The lock events inside power_manager.metrics.LockEvent, recorded when a
    quick-lock/standard-lock starts. The device is on {PowerSource} when the
    metrics is recorded.
  </summary>
  <token key="PowerSource">
    <variant name="OnAC" summary="charging"/>
    <variant name="OnBattery" summary="battery"/>
  </token>
</histogram>

<histogram base="true" name="Power.Mac" units="mW" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Instantaneous power consution in milliwatts, for the system as a whole and
    broken down by component. Only recorded on macOS. Only valid on Intel based
    systems. NB: The collection method was changed in May 2019, which may look
    like a regression in timeline view.
  </summary>
</histogram>

<histogram name="Power.Mac.ThermalState" enum="MacThermalState"
    expires_after="2023-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Thermal state of the user's machine as reported by macOS's [NSProcessInfo
    thermalState]. Sampled once per minute.
  </summary>
</histogram>

<histogram name="Power.PC10inS0ixRuntimeResidencyRate" units="%"
    expires_after="2024-09-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Reports the time a Chrome OS device spends in the S0ix idle state while not
    suspended (that is between system resume and suspend events) as a percentage
    of the time spent in the Package C10 (PC10) idle state. Reported only if at
    the time of measurement the time spent in PC10 is non-zero.

    Data points for this metric are recorded on every resume and suspend event
    and therefore the metric itself is reported on every suspend attempt,
    starting from the second one.

    Only available on Chrome OS devices with Intel CPU.
  </summary>
</histogram>

<histogram name="Power.PC10RuntimeResidencyRate" units="%"
    expires_after="2024-09-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Reports the time a Chrome OS device spends in the Package C10 (PC10) idle
    state as a percentage of the time device is not suspended (that is between
    system resume and suspend events). Reported even if the value is zero.

    Data points for this metric are recorded on every resume and suspend event
    and therefore the metric itself is reported on every suspend attempt,
    starting from the second one.

    Only available on Chrome OS devices with Intel CPU.
  </summary>
</histogram>

<histogram name="Power.PeripheralReadErrorLatencyMs" units="ms"
    expires_after="2024-07-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of wall time in milliseconds taken to fail a read of the battery
    capacity of a peripheral.
  </summary>
</histogram>

<histogram name="Power.PeripheralReadLatencyMs" units="ms"
    expires_after="2024-07-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of wall time in milliseconds taken to complete a read of the
    battery capacity of a peripheral.
  </summary>
</histogram>

<histogram name="Power.PowerButtonAcknowledgmentDelay" units="ms"
    expires_after="M100">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time between the user pressing the power button and Chrome
    acknowledging the button-down event on Chrome OS. Values for this metric are
    capped to two seconds.
  </summary>
</histogram>

<histogram name="Power.PowerButtonMenuAction" enum="PowerButtonMenuActionType"
    expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Actions performed while the power button menu is open.</summary>
</histogram>

<histogram name="Power.PowerButtonPressed" units="units"
    expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates a press of the power button, recorded when PowerManagerClient
    receives a signal that the power button was pressed and notifies
    FingerprintPowerButtonRaceDetector.
  </summary>
</histogram>

<histogram name="Power.PowerButtonPressInLaptopMode"
    enum="PowerButtonPressType" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Press power button in laptop mode will result in different scenarios
    according to the power button up state. Counts the different power button
    press scenarios in laptop mode.
  </summary>
</histogram>

<histogram name="Power.PowerButtonPressInTabletMode"
    enum="PowerButtonPressType" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Press power button in tablet mode will result in different scenarios
    according to the power button up state. Counts the different power button
    press scenarios in tablet mode.
  </summary>
</histogram>

<histogram name="Power.PowerSupplyMaxPower" units="W"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The maximum power supported by the connected power supply on Chrome OS. A
    sample is reported every time that the power manager polls sysfs (typically
    every 30 seconds) and sees a connected supply.

    Warning: this histogram was expired from 2022-04-18 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.PowerSupplyMaxVoltage" units="V"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The maximum voltage supported by the connected power supply on Chrome OS. A
    sample is reported every time that the power manager polls sysfs (typically
    every 30 seconds) and sees a connected supply.

    Warning: this histogram was expired from 2022-04-18 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.PowerSupplyType" enum="PowerSupplyType"
    expires_after="2025-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of the connected power supply on Chrome OS. A sample is reported
    every time that the power manager polls sysfs (typically every 30 seconds)
    and sees a connected supply.

    Warning: this histogram was expired from 2022-04-11 to 2024-04-12; data may
    be missing.
  </summary>
</histogram>

<histogram name="Power.ShutdownReason" enum="ShutdownReason"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <summary>
    The reason for the Chrome OS power manager shutting down or rebooting the
    system.
  </summary>
</histogram>

<histogram name="Power.SmartCharging.Messages" enum="SmartChargingMessages"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Type of messages that are reported by smart charging.</summary>
</histogram>

<histogram name="Power.SuspendAttempt" enum="SuspendAttempt"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of suspend attempts on Chrome OS. Samples are reported before
    each attempt, so this histogram may include cases where the system crashed
    instead of suspending.
  </summary>
</histogram>

<histogram name="Power.SuspendAttemptsBeforeCancel" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of suspend attempts performed for a single suspend request (e.g.
    triggered by the lid being closed) that was eventually canceled on Chrome
    OS. This also includes requests that were canceled due to the system
    eventually shutting down due to repeated suspend failures. This is recorded
    just after the SuspendDone signal is emitted, while cleaning up from the
    canceled attempt.
  </summary>
</histogram>

<histogram name="Power.SuspendAttemptsBeforeSuccess" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of suspend attempts performed for a single suspend request (e.g.
    triggered by the lid being closed) that eventually succeeded on Chrome OS.
    This includes the successful attempt. This is recorded after the system
    resumes, just after the SuspendDone signal is emitted, while unwinding the
    suspend preparations.
  </summary>
</histogram>

<histogram name="Power.SuspendDelay" units="seconds" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time powerd waited until all clients (e.g. Bluetooth Manager)
    to be ready to suspend after receiving a suspend request. The maximum
    recorded value is 60 seconds.
  </summary>
</histogram>

<histogram name="Power.SuspendResult" enum="SuspendResult"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The results of suspend attempts on Chrome OS. Samples are reported after
    each attempt.
  </summary>
</histogram>

<histogram name="Power.TimeInSuspendAtBoot" units="minutes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS time in minutes spent in suspend-to-RAM mode sampled at boot
    (i.e., the device most likely ran out of battery while in suspend).
  </summary>
</histogram>

<histogram name="Power.TimeInSuspendAtResume" units="minutes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <summary>
    Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume.
  </summary>
</histogram>

<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnAC" units="units"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times that the user adjusted the brightness during a session
    when on AC. Values for this metric are clamped to 10k count, so the last
    bucket should be considered to be including all metrics above 10k.
  </summary>
</histogram>

<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnBattery"
    units="units" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times that the user adjusted the brightness during a session
    when on battery. Values for this metric are clamped to 10k count, so the
    last bucket should be considered to be including all metrics above 10k.
  </summary>
</histogram>

<histogram name="Power.{HpsEvent}.DurationSeconds" units="seconds"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of a {HpsEvent}, recorded on undimming/deferring.
  </summary>
  <token key="HpsEvent">
    <variant name="QuickDimRevertedByHps"
        summary="quick dimming undimmed by hps"/>
    <variant name="QuickDimRevertedByUser"
        summary="quick dimming undimmed by user"/>
    <variant name="StandardDimDeferredByHps"
        summary="standard dimming deferred by hps"/>
    <variant name="StandardDimRevertedByUser"
        summary="standard dimming undimmed by user"/>
  </token>
</histogram>

<histogram name="PowerML.DimImminent.Action" enum="PowerMLDimImminentAction"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    What happens when UserActivityManager receives a screen dim imminent
    notification. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.ModelDim.Result" enum="PowerMLFinalResult"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    What happens after screen is dimmed following model instruction. Only
    applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.ModelNoDim.Result" enum="PowerMLFinalResult"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    What happens after screen dim is deferred following model instruction. Only
    applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.NonModelDim.Result" enum="PowerMLFinalResult"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    What happens after screen is dimmed by powerd by ignoring the model
    instruction. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.PreviousEventLogging.Result"
    enum="PowerMLPreviousEventLoggingResult" expires_after="2020-12-13">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Status of logging previous idle event after a screen dim imminent signal is
    received. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimComponent.LoadComponentEvent"
    enum="PowerMLSmartDimComponentLoadComponentEvent"
    expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the event (various failures or success) of loading smart dim
    component. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimComponent.VersionType"
    enum="PowerMLSmartDimComponentVersionType" expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the type of expected version (default, experimental or empty) used
    by smart dim component installer. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimComponent.WorkerType"
    enum="PowerMLSmartDimComponentWorkerType" expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the worker type that is used by smart dim ml agent to make a
    decision. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimFeature.WebPageInfoSource"
    enum="PowerMLSmartDimWebPageInfoSource" expires_after="2022-11-01">
  <expired_intentionally>
    Kept because it's used in tast power.SmartDim.
  </expired_intentionally>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The source of web page info in smart dim features, emitted everytime smart
    dim is requested.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimModel.RequestCanceledDuration" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time elapsed between a Smart Dim Inference Request being sent to the ML
    model, and the request being canceled before the result is returned.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimModel.RequestCompleteDuration" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time elapsed between a Smart Dim Inference Request being sent to the ML
    model and a result being returned.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimModel.Result"
    enum="PowerMLSmartDimModelResult" expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This is the status code returned by the model when calculating a user
    inactivity score. If it is any value other than 0 (success), then some issue
    has occurred in the score calculation, either because preprocess was not
    loaded or parsed correctly, or the preprocessor failed to process a
    RankerExample. Only applicable to Chrome OS.
  </summary>
</histogram>

<histogram name="PowerML.SmartDimParameter.Result"
    enum="PowerMLSmartDimParameterResult" expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of parsing the dim threshold parameter value. Only applicable to
    Chrome OS.
  </summary>
</histogram>

</histograms>

</histogram-configuration>